繁体   English   中英

查找开始日期和结束日期之间的日期

[英]Finding date between start date and end date

我想检查日期是否在开始日期和结束日期之间。

我添加了一个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'
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'

这可能是由于日期有时间:

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'和'2010-04-15'之间

添加此子句:

OR datepaid = '2010-04-15'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM