将数据从yyyy-dd-mm转换为mm / dd / yyyy问题

时间:2014-07-29 16:58:08

标签: sql sql-server

我的表格中有一个列,格式为yyyy-mm-dd,我希望将该列中的所有日期转换为格式mm / dd / yyyy

我使用以下查询

UPDATE Test.dbo.Status  
   SET DateIn  = CONVERT(DATE,DateIn ,101)

DateIn列在我的表中定义为Date(DateIn DATE NULL)

查询不会更改数据。我在这里做错了吗?

1 个答案:

答案 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