日期转换格式字符串dd/mm/yy失败

lh80um4z  于 2022-10-03  发布在  其他
关注(0)|答案(1)|浏览(218)

我在varchar列中有一个格式为dd/mm/yy的SQL Server日期。我正在尝试将此字符串转换为日期,但
消息241,从字符串转换日期/时间时转换失败。

我试过CAST()TRY_CAST()TRY_CONVERT()CONVERTPARSE()TRY_PRASE()。它们都不起作用。

这是我的代码:

DECLARE @d varchar(50) = '13/09/22'

SELECT TRY_CONVERT(datetime, @d, 103) -- I have tried different formats to no avail.

另外,我也试过如下选角

SELECT TRY_CAST(@d AS datetime) -- Tried datetime2 as well, but all failing.

如果我将日期部分更改为<12,转换将起作用。这意味着SQL Server以某种方式将其解释为mm/dd/yy

谢谢

dgsult0t

dgsult0t1#

如果您使用正确的掩码,CONVERT()实际上可以工作:

SELECT CONVERT(datetime, '13/09/22', 3);  -- 2022-09-13 00:00:00.000

问题是掩码103假定为4位年份,而不是2位年份。对于dd/mm/yy格式的2位年份日期,请使用掩码3

相关问题