首页 > 解决方案 > 返回日期时间值介于 2 列之间的结果

问题描述

我有一个这样的表,我正在尝试检索“2021-06-02 09:30:00”将返回 id 272 的结果。

+-----+---------------------+---------------------+
| id  | start_date          | end_date            |
+-----+---------------------+---------------------+
| 271 | 2021-05-26 08:00:00 | 2021-05-26 09:00:00 |
| 272 | 2021-06-02 09:00:00 | 2021-06-02 10:00:00 |
| 273 | 2021-05-28 08:00:00 | 2021-05-28 09:00:00 |
| 274 | 2021-06-04 08:00:00 | 2021-06-04 09:00:00 |
| 275 | 2021-06-11 08:00:00 | 2021-06-11 09:00:00 |
+-----+---------------------+---------------------+

标签: mysql

解决方案


您可以使用 BETWEEN

CREATE TABLE Table1
    (`id` int, `start_date` varchar(19), `end_date` varchar(19))
;
    
INSERT INTO Table1
    (`id`, `start_date`, `end_date`)
VALUES
    (271, '2021-05-26 08:00:00', '2021-05-26 09:00:00'),
    (272, '2021-06-02 09:00:00', '2021-06-02 10:00:00'),
    (273, '2021-05-28 08:00:00', '2021-05-28 09:00:00'),
    (274, '2021-06-04 08:00:00', '2021-06-04 09:00:00'),
    (275, '2021-06-11 08:00:00', '2021-06-11 09:00:00')
SELECT id FROM Table1 WHERE '2021-06-02 09:30:00' BETWEEN `start_date` AND  `end_date` 
| 编号 |
| --: |
| 272 |

db<>在这里摆弄


推荐阅读