Php 在两次之间选择数据(还有其他条件)
我已经试着从我的数据库中选择特定的数据大约一个小时了,没有任何乐趣,非常感谢任何想法Php 在两次之间选择数据(还有其他条件),php,mysql,sql,database,Php,Mysql,Sql,Database,我已经试着从我的数据库中选择特定的数据大约一个小时了,没有任何乐趣,非常感谢任何想法 My 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
My 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)
我想将当前时间/天与上面的列表进行比较,以便只选择现在可用的数据
i、 e.如果当前时间是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.
…但如果不是说,有效的开始时间是12:30
我一直在尝试从我的表中选择SELECT*,其中date介于date1和date2之间“
,但我不确定如何合并其他部分。也许最好只选择mysql查询中的所有内容,然后使用PHP进行筛选?SELECT*
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
来自atable
其中有效\u expiry>CURDATE()
和有效的\u时间\u开始>=CURTIME()
和有效时间
和案例DAYOFWEEK(CURDATE())
当1时,则为有效的\u mon
当2时,则为有效的\u mon
当3时,则有效
当4时,则有效
当5时,则有效_thu
当6时,则有效_fri
当7时,则有效
结束=1
选择*
来自atable
其中有效\u expiry>CURDATE()
和有效的\u时间\u开始>=CURTIME()
和有效时间
和案例DAYOFWEEK(CURDATE())
当1时,则为有效的\u mon
当2时,则为有效的\u mon
当3时,则有效
当4时,则有效
当5时,则有效_thu
当6时,则有效_fri
当7时,则有效
结束=1
谢谢@andriy-m,我住在新西兰(UTC+12:00),有没有办法在查询中包括日期、默认时间、时区设置(“太平洋/奥克兰”)或类似的内容?@Jamie:对不起,我不太明白你的意思。CURTIME()
根据返回以当前时区表示的时间。您的意思是有效时间\u开始
和有效时间\u结束
反映不同的时区,您需要一些转换时间的方法吗?谢谢@andriy-m,我在新西兰(UTC+12:00),有没有办法包括日期\u默认时区设置('pacific/auckland')或类似的查询?@Jamie:对不起,我不确定我是否理解你的意思。CURTIME()
根据返回以当前时区表示的时间。您的意思是有效时间\u开始
和有效时间\u结束
反映不同的时区,您需要某种方式转换时间吗?