我有mysql表,其中包含列section
,is_date_based
(是/否值),date_start
,date_end
和showhide
查询是
$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-time
是between date_start and date_end
和showhide='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之间,也不会显示第一条记录...
答案 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";