我需要获取“下周日”的日期
我该怎么做?
我看过 DAYOFWEEK
函数,但这并不是我真正想要的(可能在 WHERE 子句中有用)
编辑:
我把问题从周六改回原来的周日,因为我得到了周日的一些有效答案,这可能会在未来帮助一些人
我在其他地方(包括 SO 上)找到了许多其他“周末”日期问题和答案
对我来说最有用的解决方案是找到的已接受答案 here .
最佳答案
更新
最好使用 curdate()
而不是 now()
,所以最终通过 date()< 转换为
可以省略。DATE
类型
SELECT curdate() + INTERVAL 6 - weekday(curdate()) DAY;
下周日或
SET @date = '2014-03-05';
SELECT @date + INTERVAL 6 - weekday(@date) DAY;
可变日期。
原始答案
只需在下周日使用此语句:
SELECT date(now() + INTERVAL 6 - weekday(now()) DAY);
输出
+-----------------------------------------------+
| date(now() + INTERVAL 6 - weekday(now()) DAY) |
+-----------------------------------------------+
| 2014-04-13 |
+-----------------------------------------------+
解释:
weekday(now())
返回当前工作日(从 0 开始为星期一,6 为星期日)。从 6 中减去当前工作日,得到到下周日的剩余天数。然后将它们添加到当前日期并获得下周日的日期。
或者,如果您想灵活处理任何日期:
SET @date = '2014-03-05';
SELECT date(@date + INTERVAL 6 - weekday(@date) DAY);
输出
+-----------------------------------------------+
| date(@date + INTERVAL 6 - weekday(@date) DAY) |
+-----------------------------------------------+
| 2014-03-09 |
+-----------------------------------------------+
关于mysql - 如何获得即将到来的周日约会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23020162/