0

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

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

我该如何纠正这个错误

4

1 回答 1

1

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

SELECT * FROM tblCustomers WHERE date BETWEEN Convert(smalldatetime, '19/12/2012', 105) AND Convert(smalldatetime, '1/17/2013', 101)
GO

但是,我应该问你。为什么对同一个查询使用两种不同的日期格式?

有关最终 101 参数的解释和可能值,请参见此处的 T-SQL 上的转换函数

于 2013-01-17T12:00:02.577 回答