迁移到新笔记本电脑后出现奇怪的SQL错误

时间:2011-07-12 16:28:10

标签: sql sql-server-2008

在Windows 7(32位)和Sql Server Express 2008(32位)

我成功运行了这样的查询:

SELECT * FROM tblEmballagesScheduling WHERE StartDate <= '2011/03/14'

今天,我买了一台装有Windows 7(64位)的新笔记本电脑并安装了Sql Server Express 2008(64位),我在同一查询中收到了以下错误:

  

Msg 242,Level 16,State 3,Line 1
  La conversion d'un typededonnéesvarcharen typededonnéessexldatetimeacrééunevaleur hors limites。

英文翻译:

  

将varchar数据类型转换为smalldatetime数据类型会导致超出范围的smalldatetime值。

我不知道出了什么问题?

提前感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

您可以尝试查看此查询是否有效吗?

SELECT * FROM tblEmballagesScheduling WHERE StartDate <= '20110314'

我使用的是ISO-8601日期格式(YYYYMMDD - 或YYYY-MM-DDTHH:MM:SS),它与语言无关,可以在SQL中使用所有区域和数据格式设置服务器

答案 1 :(得分:1)

这是本地化设置。您的笔记本电脑现在设置的格式为YYYY/dd/mm,并且没有第14个月。

答案 2 :(得分:0)

根据您使用外语报告错误消息的事实,日期格式“2011/03/14”是否可能与您的本地化设置不符?

答案 3 :(得分:0)

卸载法语版的Sql Server Express 2008,然后安装英文版的Sql Server Express 2008.然后正确解释日期字段的查询(年/月/日)。