当前日期之间不工作在PHP查询

时间:2018-09-02 18:10:09

标签: php mysql

我有mysql表,其中包含列sectionis_date_based(是/否值),date_startdate_endshowhide

查询是

$query = "select * from tabele where section='Festival Wish' and ((is_date_based='No') OR (is_date_based='Yes' and (CURDATE() between date_start and date_end ))) and showhide='0' order by sort_order asc";

条件1。 现在,如果is_date_based='No'showhide='0',则应显示行...并且它正在工作...。

条件2:但是,如果id_date_based='Yes'current date-timebetween date_start and date_endshowhide='0',则 然后仅 行应显示...

........

但是不幸的是,条件2 甚至无法在mysql表中使用所需的值和数据。

mysql表结构是

section       is_date_based  showhide    date_start          date_end
Festival Wish   Yes            0       2018-09-01 05:00:00  2018-09-05 11:30:00
Festival Wish   No             0       0000-00-00 00:00:00  0000-00-00 00:00:00

在上面的查询中正确显示了第二条记录,但是即使当前日期在date_start和date_end之间,也不会显示第一条记录...

1 个答案:

答案 0 :(得分:1)

可能是您需要now()而不是curate(。

curdate()返回日期,例如2018-09-01 now()返回日期为时间2018-09-05 20:34:00 ..

您可能还需要时间调整样品,因为11:30已经过去

$query = "select * 
        from tabele 
        where section='Festival Wish' 
        and ( (is_date_based='No') 
              OR (is_date_based='Yes' and (NOW() between date_start and date_end ))) 
        and showhide='0' order by sort_order asc";