我在mysql数据库中有两次从10:00开始到18:00结束,现在我想用PHP检查一下,如果时间不大于或小于这两次,该怎么办?感谢Mysql被设置为TIME,只是没有日期时间,基本上我想检查一下现在的时间是否不在开始和结束之间。开始表示=从2开始,结束表示到2。Day_id是星期天。这是不起作用的内容
$time_now = date("H:i");
//in DB format 00:00 // time
echo "SELECT * FROM opening_hrs WHERE
(TIME(from2) > TIME('".$time_now."') AND TIME(to2) < TIME('".$time_now."') )
AND day_id=".$day_id;
如何检查时间的任何想法("H:i"(;从DB到次?
使用MySql的当前时间概念,尝试此查询。
SELECT * FROM opening_hrs
WHERE TIME(NOW()) >= TIME(from2)
AND TIME(NOW()) < TIME(to2)
AND day_id=whatever
专业提示请小心将>=
用于时间范围的开始,将<
用于时间范围结束,以避免出现一个接一个的错误。
NOW()
是MySql中一个对时区敏感的操作。如果您在打开每个MySql连接后立即执行此操作。您将从NOW()
获得当地时间。
SET time_zone = `Australia/Sydney`;
Obv,使用您自己的时区标志。
我只想使用current_time
,它是一个内置的MySQL,可以为您提供当前时间:
select *
from opening_hrs
where
current_time >= time(:from2)
and current_time < time(:to2)
and day_id = :day_id
请注意,您应该使用准备好的语句,而不是将变量连接到查询字符串中:在这篇著名的SO文章中可以了解更多信息。