mysql - 根据天数获取下一个日期 - mysql
问题描述
我是 mysql 的新手,我想写一个查询,我在其中传递日期编号,它给了我下一个日期在即将到来的/当前的一周。
例子 :
- 如果今天是星期一(2018 年 1 月 1 日)并且我通过了 5,那么我想要星期五(2018 年 1 月 5 日)。
- 如果今天是星期五(2018 年 1 月 5 日)并且我通过了 1,那么我想要星期一(2018 年 1 月 8 日)。
我已经编写了一个基本查询,但我无法使其通用。
询问 :
select date_add(now(), interval dayofweek(now()) + (6 - @day_num) day);
解决方案
尝试(它可以进一步优化,但首先你可以检查它是否有效):
SELECT
CASE WHEN WEEKDAY(CURDATE()) + 1 >= @day_num
THEN (CURDATE() + INTERVAL (6 - WEEKDAY(CURDATE())) DAY) + INTERVAL @day_num DAY
ELSE (CURDATE() + INTERVAL (0 - WEEKDAY(CURDATE())) DAY) + INTERVAL (@day_num-1) DAY
END AS next_date;
推荐阅读
- c# - bindingsource.filter 如何添加来自不同列的多个过滤器
- python - 坚持 Treeview 到 N+S
- postgresql - 在侦听模式下实时更改数据捕获时的 Postgresql 语法错误
- python - 你如何从数据框行值制作日期时间列表?
- amazon-web-services - AWS Session Manager 连接状态取决于实例状态?
- java - REST API 在 Spring Boot 中删除 HTTP 请求
- google-cloud-spanner - Goolge Cloud Spanner DML 插入时间戳
- statnet - 如何解决ergm退化?
- javascript - 如何让 Discord YouTube Notifier 机器人使用“viewCount”作为发布视频的条件?
- static - 就 RAM 而言,静态类中的静态方法在哪里?