我对如何在周年纪念日前9天从SQL数据库中提取数据感到困惑。我想在2014年1月1日运行SQL语句,然后它将生成1月9日是周年纪念日的所有记录。年份无关紧要。
发布于 2015-02-28 06:51:21
你可以这样做:
SELECT *
FROM YourTable
WHERE DAYOFYEAR(DATE_ADD(CURDATE, INTERVAL 9 DAY)) = DAYOFYEAR(AnniversaryDate);DAYOFYEAR函数将日期转换为数字(1-366),而DATE_ADD函数将所需的9天加到当天,以拉回与周年日期的DAYOFYEAR匹配的记录。
请注意,在您的问题中,您要求提取周年纪念日( 1月9日)前9天的记录,但9天前的记录实际上是12月31日,而不是1月1日。如果您希望将其拉入1月9日,请将INTERVAL 9 DAY修改为INTERVAL 8 DAY
https://stackoverflow.com/questions/28774803
复制相似问题