将YYYY-MM-DD-HH-MM-SS转换为datetime sql server

时间:2013-07-23 09:41:03

标签: tsql datetime sql-server-2012

如何将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

2 个答案:

答案 0 :(得分:4)

尝试:

DECLARE @vardate varchar (50) = '2013-07-01-18-37-09'
SELECT CAST(LEFT(@varDate, 10) + ' ' + REPLACE(RIGHT(@vardate,8 ), '-', ':') AS DATETIME)

答案 1 :(得分: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,':'))