【发布时间】:2021-12-18 14:28:28
【问题描述】:
我有一个 MySQL 表 presence,其结构如下:
- id:1
- uid:14
- 开始:2021-11-01 00:00:00
- 结束:2021-12-31 00:00:00
- 重复:1
这一行给我的信息是,用户 14 从 2021 年 11 月 1 日到 2021 年 12 月 31 日每周一都在场。
SELECT 1
FROM presences
WHERE 2021-11-15 BETWEEN DATE(`start`) AND DATE(`end`)
检查给定日期 (2021-11-15) 是否在他的出席日期之间,但是如何添加逻辑来检查“每个星期一”?此外,如果end 为空,它应该在未来的每个星期一检查,没有结束。
星期一由start 日期给出,也可以是每隔一天。
repetitive 让我检查start 给定的日期。如果repetitive 为0,它应该像我的查询一样检查,如果日期在start 和end 之间。
人工查询:从presence 表中获取所有行,其中给定日期在开始和结束之间(如果 end 不为空)并且给定日期是开始日期。
【问题讨论】:
-
weekday(start) = 0检查星期一
标签: mysql date datetime weekday