题
我有一个名为“OrderH”的订单表头。在该表中有一个名为“OrderDate”的列。我正在尝试检索日期在一定范围内的订单。我以为我可以用“之间”来完成这个。关键字,但我没有运气。这是我一直在讨论的SQL:
select
*
from
OrderH h
where
h.OrderDate between '2009-06-16' and '2009-06-01'
order by
h.OrderDate desc
我做错了什么?
解决方案
较小的日期必须是第一个
between '2009-06-01' and '2009-06-16'
而不是
between '2009-06-16' and '2009-06-01'
使用中间时也要小心,因为你会从更大的日期获得午夜值而没有别的
其他提示
查询不起作用,因为在您的示例中,第一个日期大于第二个日期。交换日期。首先必须小于等于第二个日期。
很难找到在开始之前结束的日期。更改最小和最大......
h.OrderDate between '2009-06-01' and '2009-06-16'
select
*
from
OrderH h
where
h.OrderDate between '2009-06-01' and '2009-06-16'
order by
h.OrderDate desc
在2009-06-16午夜之后发生的MS-SQL Server事件将不包括在内。
不隶属于 StackOverflow