SQL Server中的日期转换会引发错误

时间:2013-12-13 06:01:06

标签: sql sql-server

我正在尝试转换mm/dd/yyyy格式的日期

select convert(date,'31/12/2013',101)

但是我收到了这个错误

  

Msg 241,Level 16,State 1,Line 1
  从字符串转换日期和/或时间时转换失败。

怎么做?我的系统(Windows 7)有dd-mm-yyyy格式..系统日期格式会对它产生什么影响吗?`

2 个答案:

答案 0 :(得分:2)

http://msdn.microsoft.com/en-us/library/ms187928.aspx

101是美式(mm / dd / yyyy)

尝试103(dd / mm / yyyy),这是英国/法国

SELECT CONVERT(DATE, '31/12/2013', 103)

答案 1 :(得分:2)

样式101美国样式,因此首先有几个月 - 您的字符串代表第31个月的第12天....

你需要使用的是样式 103 (英国/法国),它首先使用第一天 - 所以这个字符串是12月31日:

SELECT CONVERT(DATE, '31/12/2013', 103)

请参阅CASTCONVERT上的the official MSDN SQL Server Books Online Documentation以及定义的样式及其含义