MySQL选择timenow>数据库时间

时间:2017-11-21 17:36:24

标签: php mysql prepared-statement statements

我有一个PHP脚本,可以创建一个新订单并将时间NOW + 15分钟插入数据库。

15分钟过期后,用户无法访问订单页面。

在管理员面板上我只想显示未过期的记录,所以我的问题是我会用什么选择语句来做这个,哪个会最有效?

SELECT * FROM `orders` WHERE datenow > date

“日期”是订单的日期+ 15分钟

P.S。 另外,有没有办法使用PHP来做到这一点,所以我不必对数据库施加太多压力?

非常感谢!

1 个答案:

答案 0 :(得分:4)

鉴于您希望记录尚未过期,您希望date大于NOW()的所有记录。

SELECT 
    * 
FROM 
    `orders` 
WHERE 
    `date` > NOW()

正如所提到的评论,通常在数据库方面处理这个问题更好;而不是传输(假设您有拆分数据库和Web服务器)整个数据集以在应用程序代码中过滤它。

将所有日期时间函数放在同一服务器上(在本例中为数据库中)的另一个好处是,特别是在某些共享托管环境中,数据库的时区无法更改。因此,您希望时间比较发生在同一时区。