我一直试图从我的数据库中选择特定数据大约一个小时,现在没有任何快乐,真的很感激任何想法。
我的MySQL数据库包括以下列:
valid_time_start - time
valid_time_end - time
valid_expiry - date
valid_mon - tinyint(4)
valid_tue - tinyint(4)
valid_wed - tinyint(4)
valid_thu - tinyint(4)
valid_fri - tinyint(4)
valid_sat - tinyint(4)
valid_sun - tinyint(4)
我想将当前时间/日期与上面的列表进行比较,以便仅选择现在可用的数据。
即。如果当前时间是4月2日星期二的12:04,我希望它选择包含以下单元格的记录:
valid_time_start: 11:00
valid_time_end: 13:00
valid_expiry: 10th Apr
valid_mon: 0
valid_tue = 1
valid_wed = 0 etc.
...但不是说,valid_time_start是12:30
我一直在试验SELECT * FROM my_table WHERE date BETWEEN date1 AND date2"
,但我不确定如何合并其他部分。也许最好只选择mysql查询中的所有内容,然后使用PHP进行过滤?
答案 0 :(得分:1)
SELECT *
FROM atable
WHERE valid_expiry > CURDATE()
AND valid_time_start >= CURTIME()
AND valid_time_end < CURTIME()
AND CASE DAYOFWEEK(CURDATE())
WHEN 1 THEN valid_mon
WHEN 2 THEN valid_mon
WHEN 3 THEN valid_tue
WHEN 4 THEN valid_wed
WHEN 5 THEN valid_thu
WHEN 6 THEN valid_fri
WHEN 7 THEN valid_sat
END = 1