2015-11-09 71 views
1

我需要(如果可能),转换,存储的日期按以下格式Monday October 19, 2015一个字符串转换为可用的日期时间,例如01/10/2015SQL字符串转换成DATETIME

每投一列,并转换我试图运行它只是返回

转换日期和/或时间从字符串转换失败。

我无法对保存的格式作为固定过程的一部分进行操作。

回答

5

砍掉日:

DECLARE @S VARCHAR(32) = 'Monday October 19, 2015' 

SELECT CAST(SUBSTRING(@S, CHARINDEX(' ', @S) + 1, LEN(@S)) AS DATETIME) 

> 2015-10-19 00:00:00.000 
+0

聪明。没有事件想到剥离它。谢谢! – GPH

0

您应该将字符串操作为这种格式 - “DD/MON/YYYY”,其中DD是日期,MON是月份名称的前三个字母,YYYY是年份。 你可以轻松地使用字符串函数做到这一点,并从那里你可以使用传统的转换插入日期到数据库,如在这篇文章中列出的日期 - Convert DD-Mon-YYYY to DD/MM/YYYY