SQL - 按日期范围查询
我有一个名为“OrderH”的订单标题表。 在此表中有一列名为“OrderDate”。 我正在尝试检索日期在特定范围内的订单。 我认为我可以使用“ Between”关键字来完成此任务,但我没有任何运气。 这就是我一直在烦恼的 SQL:
select
*
from
OrderH h
where
h.OrderDate between '2009-06-16' and '2009-06-01'
order by
h.OrderDate desc
我做错了什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
较小的日期必须放在第一位,
而不是
使用 Between 时也要小心,因为您将从较大的日期中获得午夜值,而没有其他任何内容
请查看 Between 如何处理 SQL Server 中的日期?
the smaller date has to be first
instead of
Also be careful when using between because you will get the midnight value from the larger date and nothing else
Take a look at How Does Between Work With Dates In SQL Server?
很难找到在开始之前就结束的日期。 更改最小和最大...
It's hard to find dates that end before they begin. Change the min and max...
查询不起作用,因为在您的示例中,第一个日期大于第二个日期。 交换日期。 第一个日期必须小于等于第二个日期。
Query does not work because in your example first date is bigger than second date. Swap the dates. First must be less than equal to second date.
在 MS-SQL Server 中,2009 年 6 月 16 日午夜之后发生的事件将不包括在内。
In MS-SQL Server events happening after 2009-06-16 at midnight will not be included.