开始日期到结束日期之间的查找时间
我想检查日期是否在开始日期和结束日期之间。开始日期到结束日期之间的查找时间
我添加了一个WHERE子句
where datepaid between '2010-04-01' AND '2010-04-15'
但问题是,它排除了 '2010-04-15'。
它应该包括结束日期我该怎么做?
请帮我在这
问候,
潘卡
指定时间部分明确:
WHERE datepaid BETWEEN '2010-04-01 00:00:00' AND '2010-04-15 23:59:59'
也许你的日期包括盘中倍。试试这个:
where '2010-04-01' <= datepaid AND datepaid < '2010-04-16'
喜用于回复这意味着我有至1天的时间间隔添加到感谢结束日期以获取正确的记录 – 2010-04-15 10:27:46
尝试
where datepaid between '2010-04-01' AND '2010-04-15 23:59:59'
我爱那么多人保持他们的独角兽头像! – 2010-04-15 10:17:08
添加这个条款:
OR datepaid = '2010-04-15'
这不会做任何事情。 “BETWEEN”条款已经涵盖了这种情况。 – 2010-04-15 10:17:23
WHERE datepaid >= '2010-04-01'
AND datepaid < '2010-04-15' + INTERVAL 1 DAY
这可能是由于有时间日期:
select
'2010-04-15' between '2010-04-01' AND '2010-04-15', -- 1
'2010-04-15 12:00:00' between '2010-04-01' AND '2010-04-15', -- 0
'2010-04-15 12:00:00' between '2010-04-01 00:00:00' AND '2010-04-15 23:59:59' -- 1
要么添加时间范围分隔符或比较之前截断值:
select
'2010-04-15 12:00:00' between '2010-04-01 00:00:00' AND '2010-04-15 23:59:59' -- 1
cast('2010-04-15 12:00:00' as date) between '2010-04-01' AND '2010-04-15' -- 1
我没有检查,但我想表现没有更好的铸件。
其中CONVERT(VARCHAR(10),datepaid,23) '2010-04-01' 之间AND '2010-04-15'
它包括像2010-04-15 23:59:59.56? – 2010-04-15 10:25:00
@Jens:据我所知,MySQL不存储小数秒。如果它确实支持它们,那么我会将该子句改为“BETWEEN'2010-04-01 00:00:00.000'和'2010-04-15 23:59:59.999''。 – LukeH 2010-04-15 10:47:12