将“ 2019年11月23日下午1:44”转换为日期时间(例如2019-11-23 13:44:25.000格式)的语法?

时间:2019-12-03 21:29:17

标签: sql-server tsql datetime type-conversion datetime-format

我一直在寻找一种解决方案来转换我的一个数据字段,该数据字段位于'Nov 23,2019,1:44 PM'并且数据类型为nvarchar。当我使用convert(datetime,[Exam Scheduled Date/Tm],121)时收到错误消息

  

从nvarchar数据类型到datetime数据类型的转换导致值超出范围。

3 个答案:

答案 0 :(得分:2)

TRY_PARSE函数似乎可以正常工作:

DECLARE @DateString nvarchar(50) = 'Nov 23, 2019, 1:44 PM';

SELECT TRY_PARSE(@DateString AS datetime USING 'en-us')

答案 1 :(得分:1)

事实证明,format "107"对于是否存在逗号是宽容的,因此只需先替换所有逗号,然后使用格式“ 107”进行转换即可。

select convert(datetime, replace([Exam Scheduled Date/Tm],',',''),107)
from (
  select 'Nov 23, 2019, 01:44 PM' [Exam Scheduled Date/Tm]
) X

答案 2 :(得分:-2)

尝试convert(datetime,REPLACE([Exam Scheduled Date/Tm],',',' '),100)