嗨,我正试图解决一个问题,因为我得到了
'Conversion failed when converting date and/or time from character string.'
然后我发现这是因为日期是这样的"2018-22-10",我的格式是YYYY-MM-DD,所以我试图为这种情况做一个案例,我发现了这个代码可能有助于
WHEN SUBSTRING([DateAchat],6, 2) > 12 THEN ([DateAchat], '%Y-%m-%d') .strftime("%Y-%m-%d")
to_date(T1.[DateAchat],'YYYYMMDD');
FORMAT T1.[DateAchat](getdate(), 'yyyy/MM/dd ')
在DateAchat中,日期信息存储在中
您可以将SET DATEFORMAT
与TRY_CONVERT
功能结合使用
DECLARE @t TABLE (d1 nvarchar(10));
INSERT INTO @t VALUES ('2018-22-10'), ('2018-10-22'), ('2018-10-10');
SET DATEFORMAT ydm
SELECT d2
FROM (SELECT COALESCE(try_convert(datetime, d1, 120), try_convert(datetime, d1)) AS d2
FROM @t) t1
WHERE d2 IS NOT NULL
结果
d2
-----------------------
2018-10-22 00:00:00.000
2018-10-22 00:00:00.000
2018-10-10 00:00:00.000