如何将日期值格式更改为YYYYMMDD格式

时间:2014-04-10 21:41:08

标签: sql sql-server

为某些AS400数据创建sql备份/ Web查看器时,必须手动擦除一些数据。

在此过程中,数据库中的日期最终以2格式存储为字符串:

  • YYYYMMDD
  • MM/DD/YYYY

为了保留原始数据,我想将所有MM/DD/YYYY转换为YYYYMMDD。有没有可以解决此问题的查询?类似的东西:

SELECT commentDate from SomeTable
    IF FORMAT(commentDate) LIKE '00/00/0000'
        commentDate = FORMAT(commentDate, '00000000')

2 个答案:

答案 0 :(得分:1)

首先,我强烈建议您追踪任何决定将日期存储为文本并给予他好的殴打的人。如果有帮助,欢迎借用我的时间旅行机器人。

你快到了。使用MS SQL语法:

SELECT
    CASE WHEN CommentDate LIKE '[12][0-9][0-9][0-9][0-1][0-9][0-3][0-9]' THEN CONVERT(DATE, CommentDate, 112)
        WHEN CommentDate LIKE '[0-1][0-9]/[0-3][0-9]/[12][0-9][0-9][0-9]' THEN CONVERT(DATE, CommentDate, 101)
        END
FROM
    (SELECT '20140410' AS CommentDate UNION ALL SELECT '04/10/2014') AS X

答案 1 :(得分:0)

Select convert(varchar(11),cast(CommentDate  as datetime),112)
From tableName

SQL Fiddle Demo

如果CommentDate是有效的日期时间值,则以yyyymmdd格式显示日期。

检查此链接是否为MSSQL date format styling