SQL - 将非标准字符串转换为DateTime

时间:2015-06-10 08:10:55

标签: sql sql-server

我在字符串中有一些日期/时间数据,格式为'26 / 10/2009 09:06:43'(即日期为英国格式)。当我尝试

SELECT CAST('26/10/2009 09:06:43' AS DATETIME)

我收到以下错误:

  

将char数据类型转换为datetime数据类型   超出范围的日期时间值。

我确信解决方案真的非常简单,但我在网上找到的每个例子都会让事情变得过于复杂!

我很感激您能给予的任何帮助!

3 个答案:

答案 0 :(得分:2)

尝试使用convert功能,而不是提供样式编号:

SELECT convert(DATETIME, '26/10/2009 09:06:43', 103)

您可以在此处找到所有格式:http://www.sqlhub.com/2009/04/list-of-all-available-datetime-format.html

答案 1 :(得分:1)

在oracle中就是这样:

SELECT to_date('26/10/2009 09:06:43', 'DD/MM/YYYY HH24:MI:SS') from dual;

有以下网站:

http://www.sqlines.com/oracle-to-sql-server/to_date 在sql server中似乎是这样的:

SELECT CONVERT(DATETIME, '26/10/2009 09:06:43');

答案 2 :(得分:0)

转换前,请将语言设置为英式英语:

set language [British English]
SELECT CAST('26/10/2009 09:06:43' AS DATETIME)

或者您可以使用convert函数,并声明样式:

SELECT convert(DATETIME, '26/10/2009 09:06:43', 103)