如何查询上一年一周的第一个日期

0kjbasz6  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(364)

绞尽脑汁想弄明白,但我似乎找不到任何有帮助的线索。
简单地说,我想找到一周中的第一天(作为日期),但是一年前,对于任何给定的日期。我们的日历周从星期天开始。
这是我可以随意使用的table的快照
非常感谢您的帮助!
谢谢!

esbemjvw

esbemjvw1#

下面是一个函数:

CREATE FUNCTION `SUNDAY`(indate date) RETURNS date
    NO SQL
BEGIN
declare prevyear date;
set prevyear = indate - interval 1 year;
return prevyear - weekday(prevyear) - interval 1 day;
END
fwzugrvs

fwzugrvs2#

你可以用 datesub() 从今天减去一年( curdate() ). 在工作日与 weekday() . 它从 06 哪里 0 今天是星期一。减去那几天加一,因为你的第一个工作日是星期天而不是星期一。

date_sub(date_sub(curdate(),
                  INTERVAL 1 YEAR),
         INTERVAL weekday(date_sub(curdate(),
                                   INTERVAL 1 YEAR)) + 1 DAY)
yhuiod9q

yhuiod9q3#

看看这个。如何在mysql中获得一周中的第一天?
您可以通过以下方式获得所需的结果:

mydate - INTERVAL 1 YEAR + INTERVAL 1-DAYOFWEEK(mydate - INTERVAL 1 YEAR) DAY

说明:

mydate - INTERVAL 1 YEAR

给你一年前的日期 mydate .

anyday + INTERVAL 1-DAYOFWEEK(anyday) DAY

给你一周开始的星期天 anyday .
同样的,你可以得到一个月的第一天 anyday 这样地:

LAST_DAY(anyday) + INTERVAL 1 DAY - INTERVAL 1 MONTH

有些人把这叫做周和月截短。

相关问题