2013-07-23 41 views
0

如何将YYYY-MM-DD-HH-MM-SS转换为datetime?如何将YYYY-MM-DD-HH-MM-SS转换为datetime sql服务器

例子: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

回答

3

尝试:

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

+1这么快。我正在尝试使用不同的子字符串函数。 – Zerotoinfinity

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,':'))