如果我使用between
子句运行查询,它似乎排除了结束值。
例如:
select * from person where dob between '2011-01-01' and '2011-01-31'
这将获得从'2011-01-01‘到’2011-01-30‘的所有dob
结果;跳过dob
为'2011-01-31’的记录。谁能解释为什么这个查询是这样的,以及我如何修改它以包含dob
为'2011-01-31‘的记录?(不向结束日期添加1,因为它是由用户选择的。)
发布于 2011-02-23 00:40:17
字段dob
可能具有时间部分。
要截断它,请执行以下操作:
select * from person
where CAST(dob AS DATE) between '2011-01-01' and '2011-01-31'
发布于 2011-02-23 00:35:14
问题是2011-01-31实际上是2011-01-31 00:00:00。这是一天的开始。白天的一切都不包括在内。
发布于 2011-02-23 00:30:43
select * from person where dob between '2011-01-01 00:00:00' and '2011-01-31 23:59:59'
https://stackoverflow.com/questions/5080824
复制相似问题