Mysql 今天在两列(日期时间)之间吗?(空或全零作为未绑定的上限/下限计数)

Mysql 今天在两列(日期时间)之间吗?(空或全零作为未绑定的上限/下限计数),mysql,Mysql,我有一个产品表和两个DATETIME列,一个用于开始日期,一个用于结束日期 如何检查特定产品ID是否介于开始日期和结束日期之间?但是,如果其中一个或两个值都为NULL(默认值),则接受此下限/上限为无限,如果产品仍在另一个范围内(如果已设置),则返回产品。如果两个界限都设置为NULL,则始终返回产品。选择开始日期和结束日期之间的“2012-06-26”时的情况 select case when ('2012-06-26' between start_date and end_date)

我有一个产品表和两个DATETIME列,一个用于开始日期,一个用于结束日期

如何检查特定产品ID是否介于开始日期和结束日期之间?但是,如果其中一个或两个值都为NULL(默认值),则接受此下限/上限为无限,如果产品仍在另一个范围内(如果已设置),则返回产品。如果两个界限都设置为NULL,则始终返回产品。

选择开始日期和结束日期之间的“2012-06-26”时的情况
select case when ('2012-06-26' between start_date and end_date) 
                or ('2012-06-26' >= start_date and end_date is null) 
                or ('2012-06-26' <= end_date and start_date is null)
            then 1
            else 0
            end as is_between_dates
from your_table
where product_id = 1
或('2012-06-26'>=开始日期和结束日期为空) 或('2012-06-26'
select*
从你的桌子上
哪里
product_id=1和
(
(CURDATE()介于开始日期和结束日期之间)
或(CURDATE()>=开始日期和结束日期为空)

或者(CURDATE()+1)。虽然当它们都为null时,您可能需要再处理一个条件。为True,添加了它。谢谢,Leigh。
select *
from your_table
where
product_id = 1 AND
(
   (CURDATE() between start_date and end_date) 
   or (CURDATE() >= start_date and end_date is null) 
   or (CURDATE() <= end_date and start_date is null)
   or (start_date is null and end_date is null)
)