【发布时间】:2017-09-13 09:17:28
【问题描述】:
我的表中有 VARCHAR 列 (MyValue)。它具有两种不同格式的日期值。
MyValue
----------
25-10-2016
2016-10-13
我想以 DATE 格式显示它们。
我写了如下查询:
SELECT CONVERT(date, MyValue, 105) FROM MyTable
SELECT CAST(MyValue as date) FROM MyTable
两者都给我这个错误。 Conversion failed when converting date and/or time from character string.
即使像上面那样以不同格式存储的值,是否也可以转换为 DATE 数据类型格式?
期待您的回答。提前致谢。
【问题讨论】:
-
使用
case表达式根据日期格式进行适当的转换/转换。 -
这两种格式只是示例。它也可以以任何其他格式存储。
-
不要将日期存储为 varchar,因为这是个坏主意。为什么这是一个坏主意?好吧,看看你现在因为它而遇到的麻烦
-
@good-to-know,仍然是一个案例表达式。
-
@GuidoG,我认为 OP 现在已经吸取了教训,现在正在尝试清理混合日期。
标签: sql sql-server date sql-server-2012