[英]Finding date between start date and end date
I want to check whether a date is between start date and end date. 我想检查日期是否在开始日期和结束日期之间。
i have added a where clause 我添加了一个where子句
where datepaid between '2010-04-01' AND '2010-04-15'
but the problem is that it excludes '2010-04-15'. 但问题在于它排除了“2010-04-15”。
It should include end date also how can i do this? 它应该包括结束日期,我该怎么做?
Please help me on this 请帮帮我
Regards, 问候,
pankaj 潘卡
明确指定时间部分:
WHERE datepaid BETWEEN '2010-04-01 00:00:00' AND '2010-04-15 23:59:59'
Perhaps your dates include intraday times. 也许您的日期包括日内时间。 Try this instead: 试试这个:
where '2010-04-01' <= datepaid AND datepaid < '2010-04-16'
WHERE datepaid >= '2010-04-01'
AND datepaid < '2010-04-15' + INTERVAL 1 DAY
尝试
where datepaid between '2010-04-01' AND '2010-04-15 23:59:59'
It's probably due to dates having time: 这可能是由于日期有时间:
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
Either add time to range delimiters or truncate values before comparison: 在比较之前将时间添加到范围分隔符或截断值:
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
I haven't checked but I suppose performance is better without casting. 我没有检查,但我认为没有铸造,性能会更好。
其中CONVERT(VARCHAR(10),datepaid,23)在'2010-04-01'和'2010-04-15'之间
添加此子句:
OR datepaid = '2010-04-15'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.