为某些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')
答案 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
如果CommentDate是有效的日期时间值,则以yyyymmdd格式显示日期。
检查此链接是否为MSSQL date format styling