MySQL select where timenow > 数据库时间
MySQL select where timenow > database time
我有一个 PHP 脚本,它创建一个新订单并将时间 NOW + 15 分钟插入数据库。
15 分钟后用户无法访问订单页面。
在管理面板上,我只想显示尚未过期的记录,所以我的问题是我将使用什么 select 语句来执行此操作,哪种语句最有效?
SELECT * FROM `orders` WHERE datenow > date
"date"是下单日期+15分钟
P.S。
或者,有什么方法可以使用 PHP 来做到这一点,这样我就不必对数据库施加太大压力吗?
非常感谢!
鉴于您想要尚未过期的记录,您想要 date
大于 NOW()
的所有记录。
SELECT
*
FROM
`orders`
WHERE
`date` > NOW()
如评论所述,通常最好在数据库端处理;而不是传输(假设您已拆分数据库和 Web 服务器)整个数据集以在应用程序代码中对其进行过滤。
将所有日期时间函数都放在同一台服务器上(在这种情况下是在数据库中)的另一个好处是,尤其是在某些共享主机环境中,无法更改数据库的时区。因此,您希望时间比较发生在同一时区。
我有一个 PHP 脚本,它创建一个新订单并将时间 NOW + 15 分钟插入数据库。
15 分钟后用户无法访问订单页面。
在管理面板上,我只想显示尚未过期的记录,所以我的问题是我将使用什么 select 语句来执行此操作,哪种语句最有效?
SELECT * FROM `orders` WHERE datenow > date
"date"是下单日期+15分钟
P.S。 或者,有什么方法可以使用 PHP 来做到这一点,这样我就不必对数据库施加太大压力吗?
非常感谢!
鉴于您想要尚未过期的记录,您想要 date
大于 NOW()
的所有记录。
SELECT
*
FROM
`orders`
WHERE
`date` > NOW()
如评论所述,通常最好在数据库端处理;而不是传输(假设您已拆分数据库和 Web 服务器)整个数据集以在应用程序代码中对其进行过滤。
将所有日期时间函数都放在同一台服务器上(在这种情况下是在数据库中)的另一个好处是,尤其是在某些共享主机环境中,无法更改数据库的时区。因此,您希望时间比较发生在同一时区。