0

我有一个表来存储用于汽车租赁目的的数据(预订等待响应)。这是一个名为“initiated_datime”(INT,10)的字段,其中存储了预订的启动日期(我已经知道 INT 10 不是最有效的方式,2038 等)。

我想查看等待响应超过 24 小时的预订,以便进一步报告...

以下示例对我有用

SELECT * FROM rentals WHERE rental_flag = 1 AND '".$cur_datetime_unixtime."' >(initiated_datime + 86400) ... WHERE $cur_datetime_unixtime is created in php

SELECT * FROM rentals WHERE rental_flag = 1 AND unix_timestamp(now()) > (initiated_datime + 86400)

有没有办法用更有效的代码来改变(initated_datime + 86400)?比如:unix_timestamp(initiate_datime + 1 天间隔)?

先感谢您!

4

2 回答 2

0

不是一般情况;但在这种情况下,这种不平等等同于:

SELECT * FROM rentals WHERE rental_flag = 1 
AND unix_timestamp(now() - INTERVAL 1 DAY) > initiated_datime
于 2013-03-09T18:22:19.827 回答
0

解决此问题的最有效方法是将列更改为datetime. 您可以轻松地使用日期/时间函数来操作您的过滤器。

于 2013-03-09T18:11:25.683 回答