我的表格中有一个列,格式为yyyy-mm-dd,我希望将该列中的所有日期转换为格式mm / dd / yyyy
我使用以下查询
UPDATE Test.dbo.Status
SET DateIn = CONVERT(DATE,DateIn ,101)
DateIn列在我的表中定义为Date(DateIn DATE NULL)
查询不会更改数据。我在这里做错了吗?
答案 0 :(得分:2)
您可以更改SQL Server显示日期的默认格式,但不能通过DATE
更改CONVERT()
值的存储方式。如果您将日期存储为字符串,则可以格式化日期,但是当您这样做时会丢失功能,这是不可取的。如果您非常喜欢存储格式化版本,则可能需要创建一个新的VARCHAR()
字段,以便保留DATE
版本。
最好在应用程序级别格式化日期。
您的查询不执行任何操作的原因是实际的DATE
值是等效的。请注意,当您采用任何有效的日期格式并CAST()
为DATE
时,无论输入如何,结果格式都相同:
SELECT CAST('20040510' AS DATE)
SELECT CAST('2004-05-10' AS DATE)
SELECT CAST('May 10, 2004' AS DATE)
在我的SQL Server实例上全部返回:2004-05-10
。