SQL判断24小时的语法
sql
SELECT
CASE
WHEN DATEDIFF(NOW(), created_at) < 1
THEN 'created within 24 hours'
ELSE 'created over 24 hours ago'
END AS created_status
FROM my_table;
解释
该查询使用 DATEDIFF() 函数计算当前时间与 created_at 列中的时间之间的差值(以天为单位)。如果差值小于1天,则查询结果为“created within 24 hours”。否则,查询结果为“created over 24 hours ago”。
示例
假设我们有一个 posts 表,其中包含 created_at 列,表示帖子的创建时间。我们可以使用以下查询来标识在过去24小时内创建的帖子:
sql
SELECT
id,
title,
created_at,
CASE
WHEN DATEDIFF(NOW(), created_at) < 1
THEN 'created within 24 hours'
ELSE 'created over 24 hours ago'
END AS created_status
FROM posts
WHERE created_status = 'created within 24 hours';
查询结果将显示所有在过去24小时内创建的帖子的 id 、 title 、 created_at 和 created_status 。
注意事项
* DATEDIFF() 函数计算的是天数,因此如果相差的时间少于24小时,但大于1天,查询仍将返回“created over 24 hours ago”。
* 如果 created_at 列中的时间没有时区信息,则查询将使用系统时区。
* 对于跨时区的应用程序,务必考虑时区差异。