我有一个表存储一些事件的开始时间和结束时间。我想在这个表中搜索所有事件,甚至是在特定日期发生的事情。
这是示例数据:
ID | 开始日期 | 结束日期 | 姓名 |
---|---|---|---|
1 | 2024-04-18 13:30:45 | 2024-04-18 15:30:45 | 18-04 |
2 | 2024-04-14 13:30:45 | 2024-04-18 15:30:45 | 18-04 |
3 | 2024-04-15 13:30:45 | 2024-04-15 15:30:45 | 15-04 |
4 | 2024-04-14 13:30:45 | 2024-04-14 15:30:45 | 14-04 |
5 | 2024-04-12 13:30:45 | 2024-04-12 15:30:45 | 12-04 |
6 | 2024-03-18 13:30:45 | 2024-03-18 15:30:45 | 18-03 |
7 | 2024-03-15 13:30:45 | 2024-03-16 15:30:45 | 15-03 |
8 | 2024-03-14 13:30:45 | 2024-03-15 15:30:45 | 14-03 |
9 | 2024-03-12 13:30:45 | 2024-03-13 15:30:45 | 12-03 |
如果我想要 14/04 的数据,这是例外的输出:
ID | 开始日期 | 结束日期 | 姓名 |
---|---|---|---|
2 | 2024-04-14 13:30:45 | 2024-04-18 15:30:45 | 18-04 |
4 | 2024-04-14 13:30:45 | 2024-04-14 15:30:45 | 14-04 |
这是我的查询:
SELECT * FROM content WHERE
DATE_FORMAT(dateBegin, '%d/%m/%Y') <= '14/04/2024'
AND
DATE_FORMAT(dateEnd, '%d/%m/%Y') >= '14/04/2024'
但这是我的实际输出:
ID | 开始日期 | 结束日期 | 姓名 |
---|---|---|---|
2 | 2024-04-14 13:30:45 | 2024-04-18 15:30:45 | 18-04 |
4 | 2024-04-14 13:30:45 | 2024-04-14 15:30:45 | 14-04 |
8 | 2024-03-14 13:30:45 | 2024-03-15 15:30:45 | 14-03 |
为什么我收到的线路是正确的一天,但却是另一个月的?
我做了一个Db Fiddle来展示这个问题。
我该如何修复它?
注意:我使用的是 MariaDB 10.11.4。