0

如何将 YYYY-MM-DD-HH-MM-SS 转换为日期时间?

示例:2013-07-01-18-37-09

我可以进行以下转换

DECLARE @vardate varchar (50) = '2013-07-01-18-37-09'
SELECT CAST(Substring(@vardate,1,10) AS DATETIME)

SELECT CAST(Substring(REPLACE(@vardate,'-',':'),12,19) AS TIME)

但这不会随着时间的推移而起作用..我在互联网上进行了搜索,发现示例与 YYYY-MM-DD HH:MM:SS 有关

4

2 回答 2

4

尝试:

DECLARE @vardate varchar (50) = '2013-07-01-18-37-09'
SELECT CAST(LEFT(@varDate, 10) + ' ' + REPLACE(RIGHT(@vardate,8 ), '-', ':') AS DATETIME)
于 2013-07-23T09:47:44.397 回答
2

您应该寻求避免将日期作为日期时间值以外的任何东西传递的众多原因之一。这是一种方法:

DECLARE @vardate varchar (50) = '2013-07-01-18-37-09'

select CONVERT(datetime,STUFF(STUFF(STUFF(@vardate,11,1,'T'),14,1,':'),17,1,':'))
于 2013-07-23T09:51:44.313 回答