我正在尝试比较两组时间,以找出它们是否重叠。这是我目前所拥有的..
$sql = "SELECT * FROM schedule WHERE starttime>='$starttime' AND endtime<='$endtime' AND day='$updateday'";现在这不起作用了,因为你不能比较时间,values...so,我完全不确定怎么做?
发布于 2011-05-04 08:02:31
MySQL中的日期时间字段存储为(例如)
'2011-05-03 17:01:00‘
所以你应该能够做一些像这样的事情
$starttime = date('Y-m-d H:i:s', $timestamp);其中$timestamp是您关注的时间的时间戳。然后继续您的查询。
您可以使用mktime()或strtotime() (如果从时间的字符串表示开始,就像以前的MySQL查询一样),或者只使用time()表示当前时间来制作时间戳。
发布于 2011-05-04 08:03:23
我知道您的数据类型使用了"time“。这应该不是问题,因为您可以使用"time“类型比较字段。您可能希望将错误报告级别设置为最大值,或者在mysql_query之前输出$sql语句,以再次检查您正在构造的查询是否可以在第一时间返回结果。还要检查您在数据库中的查询是否具有有效的数据集(我在调试时遇到过一次)。
发布于 2011-05-04 09:31:15
为什么不使用使用unix时间戳进行比较?
$sql = "SELECT * FROM schedule WHERE UNIX_TIMESTAMP(starttime)>=$starttime AND UNIX_TIMESTAMP(endtime)<=$endtime AND day='$updateday'";另外,我认为你是在比较字符串,我不确定它是否能工作。
https://stackoverflow.com/questions/5877009
复制相似问题