【发布时间】:2013-01-09 01:14:30
【问题描述】:
我正在使用 SQL Server 2008 R2。我知道我可以使用具有不同格式代码的 CONVERT 作为第三个参数,首先转换为 DATETIME,然后再使用另一种格式代码转换为 VARCHAR 以更改显示格式。
现在真正的问题是我在单个列中混合了原始数据。所以我的问题是如何编写一个 SELECT 语句来显示从混合的 YYYY/MM/DD、DD/MM/YYYY 到 DD/MM/YYYY?
我尝试使用 ISDATE() 但它认为 31/01/2013 不是日期,而 01/01/2013 是日期。现在只能想到看YYYY是在左边还是右边来确定正确的输入格式,但是我不知道如何在单个SELECT语句中写出来。
任何先更改格式然后执行简单 SELECT 的程序都不是一种选择。我不允许更改来源。
谢谢
【问题讨论】:
-
您编写
CASE语句来检查第三个字符是否为整数。如果是,那么你知道第一组不是一年。 -
我喜欢你的!太棒了!
-
你真的应该争取取消限制以更改来源。头脑正常的人都不应该将各种格式的日期存储为字符串!
标签: sql sql-server-2008 date