SQL CASE,如果日期被引入为YYYY-DD-MM,则将其转换为YYYY-MM-DD



嗨,我正试图解决一个问题,因为我得到了

'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 DATEFORMATTRY_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

最新更新