日期之间的SQL,包括开始和结束日期

Kar*_*rem 12 mysql sql

所以我有这个:

 (CURDATE() BETWEEN start_date AND end_date) 
Run Code Online (Sandbox Code Playgroud)

工作良好.

但是当CURDATE()2011-12-02和end_date2011-12-02它会抢到这一排吗?

例如我的start_date是2011-12-01 00:00:00,我的结束日期是2011-12-02 23:59:59

因此它仅在日期介于两者之间时有效,但如果它在其end_date自身上则不起作用.

或者它也应该检查时间,因为它仍然需要使用此查询选择,例如2011-12-02 15:30:00.

我怎样才能做到这一点?

Mar*_*rco 26

好吧,你可以试试

CURDATE() BETWEEN start_date AND DATE_ADD(end_date, INTERVAL 1 DAY)
Run Code Online (Sandbox Code Playgroud)


Mik*_*ll' 5

由于这两列都是时间戳,因此您需要确保时间不会让您失望。为了防止时间绊倒您,请将时间戳转换为日期。

where current_date between cast(start_date as date) 
                       and cast(end_date as date);
Run Code Online (Sandbox Code Playgroud)