两次之间选择数据(其他条件也是如此)

时间:2011-04-02 09:28:19

标签: php mysql sql database

我一直试图从我的数据库中选择特定数据大约一个小时,现在没有任何快乐,真的很感激任何想法。


我的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进行过滤?

1 个答案:

答案 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