我一直在寻找一种解决方案来转换我的一个数据字段,该数据字段位于'Nov 23,2019,1:44 PM'并且数据类型为nvarchar
。当我使用convert(datetime,[Exam Scheduled Date/Tm],121)
时收到错误消息
从nvarchar数据类型到datetime数据类型的转换导致值超出范围。
我一直在寻找一种解决方案来转换我的一个数据字段,该数据字段位于'Nov 23,2019,1:44 PM'并且数据类型为nvarchar
。当我使用convert(datetime,[Exam Scheduled Date/Tm],121)
时收到错误消息
从nvarchar数据类型到datetime数据类型的转换导致值超出范围。
TRY_PARSE函数似乎可以正常工作:
DECLARE @DateString nvarchar(50) = 'Nov 23,2019,1:44 PM';
SELECT TRY_PARSE(@DateString AS datetime USING 'en-us')
,
事实证明,format "107"对于是否存在逗号是宽容的,因此只需先替换所有逗号,然后使用格式“ 107”进行转换即可。
select convert(datetime,replace([Exam Scheduled Date/Tm],',''),107)
from (
select 'Nov 23,01:44 PM' [Exam Scheduled Date/Tm]
) X
,
尝试convert(datetime,REPLACE([Exam Scheduled Date/Tm],' '),100)