在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值。
我不知道出了什么问题?
提前感谢您的帮助。
答案 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.然后正确解释日期字段的查询(年/月/日)。