绞尽脑汁想弄明白,但我似乎找不到任何有帮助的线索。简单地说,我想找到一周中的第一天(作为日期),但是一年前,对于任何给定的日期。我们的日历周从星期天开始。这是我可以随意使用的table的快照非常感谢您的帮助!谢谢!
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
fwzugrvs2#
你可以用 datesub() 从今天减去一年( curdate() ). 在工作日与 weekday() . 它从 0 至 6 哪里 0 今天是星期一。减去那几天加一,因为你的第一个工作日是星期天而不是星期一。
datesub()
curdate()
weekday()
0
6
date_sub(date_sub(curdate(), INTERVAL 1 YEAR), INTERVAL weekday(date_sub(curdate(), INTERVAL 1 YEAR)) + 1 DAY)
yhuiod9q3#
看看这个。如何在mysql中获得一周中的第一天?您可以通过以下方式获得所需的结果:
mydate - INTERVAL 1 YEAR + INTERVAL 1-DAYOFWEEK(mydate - INTERVAL 1 YEAR) DAY
说明:
mydate - INTERVAL 1 YEAR
给你一年前的日期 mydate .
mydate
anyday + INTERVAL 1-DAYOFWEEK(anyday) DAY
给你一周开始的星期天 anyday .同样的,你可以得到一个月的第一天 anyday 这样地:
anyday
LAST_DAY(anyday) + INTERVAL 1 DAY - INTERVAL 1 MONTH
有些人把这叫做周和月截短。
3条答案
按热度按时间esbemjvw1#
下面是一个函数:
fwzugrvs2#
你可以用
datesub()
从今天减去一年(curdate()
). 在工作日与weekday()
. 它从0
至6
哪里0
今天是星期一。减去那几天加一,因为你的第一个工作日是星期天而不是星期一。yhuiod9q3#
看看这个。如何在mysql中获得一周中的第一天?
您可以通过以下方式获得所需的结果:
说明:
给你一年前的日期
mydate
.给你一周开始的星期天
anyday
.同样的,你可以得到一个月的第一天
anyday
这样地:有些人把这叫做周和月截短。