gpt4 book ai didi

mysql - 如何在 MySQL 中获取日期为今天、昨天或前一天的行?

转载 作者:行者123 更新时间:2023-11-29 04:55:17 27 4
gpt4 key购买 nike

我的 MySQL 数据库表的日期以 MySQL 格式 (YYYY-MM-DD) 存储。我需要构建一个 SQL 查询,该查询将返回日期为今天、昨天或前一天的行。例如,如果存储的日期是 1979-08-22,如果今天是 8/22(不同年份的同一日期)或 8/23 或 8/24,我希望返回此行。

我正在考虑使用 DAYOFYEAR() 函数,它根据日期返回 1 到 365 之间的单个值。这是当前查询:

SELECT * FROM `theTable` WHERE DAYOFYEAR(CURDATE())-DAYOFYEAR(`theDate`) IN(0, 1, 2, -364, -363)

此查询查找当前日期和存储日期之间的天数差异,如果是 3 天,则应返回结果。它似乎有效。

这是实现我想要的结果的正确方法还是有其他更有效的方法?这可能会导致闰年问题吗?

最佳答案

select *,
if(right(date_field,5)<=right(curdate(),5),concat(year(curdate()),'-',right(date_field,5)),concat(year(curdate() - interval 1 year),'-',right(date_field,5))) as myfield
from table
having myfield between curdate() - interval 2 day and curdate()

关于mysql - 如何在 MySQL 中获取日期为今天、昨天或前一天的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7083601/

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