gpt4 book ai didi

MySQL 计算时间戳

转载 作者:太空宇宙 更新时间:2023-11-03 10:55:54 27 4
gpt4 key购买 nike

我正在尝试编写一个查询,该查询将获取当前时间并从中减去时间戳,然后查看余数是否大于字段中的值。

我有以下查询代码:

SELECT *
FROM sessions
WHERE
TIMESTAMPDIFF(SECOND, last_used, NOW())>expiry_time

然而,尽管当前 time-last_used 之间的差异大于到期时间,但我的查询仍然返回 0 行。

一些示例数据:

last_used: 1388119302expiry_time: 300

最佳答案

根据 TIMESTAMPDIFF() 记录:

Returns <strong><em>datetime_expr2</em></strong> – <strong><em>datetime_expr1</em></strong>, where datetime_expr1 and datetime_expr2 are date or datetime expressions.

你的 last_used 1388119302 的值既不是日期也不是日期时间表达式。它似乎是 UNIX 时间,在这种情况下可以改为:

SELECT *
FROM sessions
WHERE last_used + expiry_time < UNIX_TIMESTAMP()

但是,此查询无法从索引中获益。将加法的结果存储在它自己的索引列中并在上面的查询中使用它会更好。您也可以考虑使用 MySQL's native temporal data types而不是 UNIX 时间,因此它的日期函数/操作将按预期工作。

关于MySQL 计算时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20800705/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com