【发布时间】:2019-12-04 07:53:17
【问题描述】:
我有如下两种不同格式的日期如下图:
DECLARE @A VARCHAR(50) = '2019-11-06 00:00:00'
DECLARE @A1 VARCHAR(50) = '06-11-2019 00:00:00'
我需要编写一个单个转换语句,将上述任何格式转换为yyyy-mm-dd hh:mm:ss.sss。
试过了:
SELECT CONVERT(DATETIME,@A) AS A, CONVERT(DATETIME,@A1) AS A1
获取:
A A1
---------------------------------------------------------
2019-11-06 00:00:00.000 2019-06-11 00:00:00.000
预期:
A A1
---------------------------------------------------------
2019-11-06 00:00:00.000 2019-11-06 00:00:00.000
我不想写两个不同的转换语句,因为我不知道哪个输入日期是哪种格式。
【问题讨论】:
-
A
DATETIME没有格式。你所拥有的是一个格式化的字符串而不是DATETIME -
那么,引擎应该知道哪个变体是正确的?如果这些是参数,请确保在调用例程时传递相同的格式。如果这是旧数据 - 创建日期时间列并自行修复数据。
标签: sql sql-server date datetime