转换nvarchar为datetime-格式19/02/2019 12.00.00 AM

时间:2019-06-18 04:20:27

标签: sql sql-server

我想在存储过程SQL Sercver 2012中将19/02/2019 12.00.00 AM格式转换为日期时间。

我尝试了

select cast('19/02/2019 12.00.00 AM' as datetime)

select convert(datetime, '19/02/2019 12.00.00 AM', 108)

但是它不起作用

3 个答案:

答案 0 :(得分:2)

您需要首先替换“。”使用“:”,因为没有SQL Server时间格式使用“。”。然后您需要使用正确的格式,108是仅时间格式,103是您要寻找的格式。

select convert(datetime, replace('19/02/2019 12.00.00 AM', '.', ':'), 103)

Reference

答案 1 :(得分:0)

您应该使用正确格式的VARCHAR文字。正如其他答案所建议的那样,您可以进行更换。我想用以下方式表示,因为它更清楚。下面的作品:

Select convert(datetime, '19/02/2019 12:00:00 AM', 103)

我建议您遵循ISO 8601标准的日期时间文字。无论使用哪种语言环境,都将以相同的方式表示日期时间。进一步了解datetime datetype。我在下面提供有关ISO 8601的内容供您参考。

  

ISO 8601说明YYYY-MM-DDThh:mm:ss [.mmm]

     

YYYYMMDD [hh:mm:ss [.mmm]]示例:

     

1)2004-05-23T14:25:10

     

2)2004-05-23T14:25:10.487

     

要使用ISO 8601格式,必须在   格式,包括T,冒号(:)和句点(。)   以格式显示。

     

方括号表示第二部分的分数为   可选的。时间部分以24小时格式指定。

     

T表示datetime值的时间部分的开始。

     

使用ISO 8601格式的优点是它是一种   具有明确规范的国际标准。还有这个   格式不受SET DATEFORMAT或SET LANGUAGE设置的影响。

答案 2 :(得分:0)

尝试用(:)替换(。)

SELECT convert(datetime,REPLACE('19/02/2019 12.00.00 AM','.',':'),    103)