Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 尝试检索日期范围内的数据时出错_Sql Server 2005_Visual Studio 2008 - Fatal编程技术网

Sql server 2005 尝试检索日期范围内的数据时出错

Sql server 2005 尝试检索日期范围内的数据时出错,sql-server-2005,visual-studio-2008,Sql Server 2005,Visual Studio 2008,我试图检索日期范围内的数据,但出现以下错误 The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value 这是基本的sql查询 SELECT * FROM tblCustomers WHERE date BETWEEN '19/12/2012' AND '1/17/2013' GO 如何纠正此错误使用字符串表示日期时间值会导致这种情况 SE

我试图检索日期范围内的数据,但出现以下错误

The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value
这是基本的sql查询

SELECT * FROM tblCustomers WHERE date BETWEEN '19/12/2012' AND '1/17/2013'
GO

如何纠正此错误

使用字符串表示日期时间值会导致这种情况

SELECT * FROM tblCustomers WHERE date BETWEEN Convert(smalldatetime, '19/12/2012', 105) AND Convert(smalldatetime, '1/17/2013', 101)
GO
但是,我应该问你。为什么对同一查询使用两种不同的日期格式


有关最终101参数的解释和可能值,请尝试使用不会被区域设置混淆的日期格式。使用
yyyymmdd
在“20121219”和“20130117”之间
似乎连日期格式的问题都混淆了,第一个日期是dd/mm/yy,第二个是mm/dd/yy。
101
在第一次转换中可能应该是
103
。。。但第二个似乎相反。奇怪的是,我注意到这里有点混乱,2012年12月19日是dd/MM/yyyy,2013年1月17日是MM/dd/yyyy。