我正在从第三方供应商API获取以下字符串格式的日期:
MM/dd/yyyy
yyyy/MM/dd
yyyyMMdd
yyyy-MM-dd
MMddyyyy因此,一些记录以yyyy-MM-dd格式显示了出生日期,而另一些记录则以其他格式显示了道布。除了format MMddyyyy之外,所有的格式都使用SQL /Cast函数转换为yyyy-MM-dd。
如何将MMddyyyy it转换为yyyy-MM-dd
我正在尝试SQL Server 2019中的以下语句,但它不起作用:
DECLARE @dt varchar(8)= '02022020';
SELECT CAST(@dt as date) s1;
Msg 241, Level 16, State 1, Line 20
Conversion failed when converting date and/or time from character string.有没有办法在SQL Server中处理这种情况?
请注意:我正在尝试使用SQL存储过程实现以下ADF代码。
coalesce(toDate(DOB,'MM/dd/yyyy')
,toDate(DOB,'yyyy/MM/dd')
,toDate(DOB,'yyyyMMdd')
,toDate(DOB,'MMddyyyy')
,toDate(DOB,'yyyy-MM-dd'))发布于 2021-05-24 21:00:50
据我所知,目前还没有MMddyyyy的样式代码,所以最简单的方法可能是先将字符串转换为yyyyMMdd,例如
CONCAT(RIGHT(@dt, 4), LEFT(@dt, 4))然后将其转换为日期:
DECLARE @dt varchar(8)= '02022020';
SELECT CONVERT(DATE, CONCAT(RIGHT(@dt, 4), LEFT(@dt, 4)), 112)发布于 2021-05-24 21:52:22
下面是处理所有格式的SQL语句。
MM/dd/yyyy
yyyy/MM/dd
yyyyMMdd
yyyy-MM-dd
MMddyyyy
DECLARE @date varchar(10)= '2020-03-15';
SELECT CASE
WHEN @date IS NULL
THEN NULL
WHEN TRY_CONVERT(DATE, @date) IS NOT NULL
THEN CAST(@date AS DATE)
WHEN TRY_CONVERT(DATE, @date) IS NULL
THEN CONVERT(DATE, CONCAT(RIGHT(@date, 4), LEFT(@date, 4)), 112)
END;发布于 2021-05-24 21:02:37
你有没有尝试过下面的方法?选择格式(yourdate,'MM-dd-yy')。让我知道
https://stackoverflow.com/questions/67672426
复制相似问题