php - Mysql - 在日期时间列中搜索时间范围
问题描述
我需要从列date_opened
(日期时间)在特定时间范围内的表中返回记录,而不管日期是什么。我目前有这个
SELECT * FROM packages WHERE HOUR(date_opened) = 9
但我需要进一步深入。我需要date_opened
09:00 到 09:30 之间的结果。我怎样才能做到这一点?
编辑 没想到有人会为此要求数据,但它是:
CREATE TABLE `packages` (
`id` int(11) NOT NULL,
`user` int(11) NOT NULL,
`date_opened` datetime NOT NULL
);
INSERT INTO `packages` (`id`, `user`, `date_opened`) VALUES
(58, 3, '2019-08-26 09:43:25'),
(73, 3, '2019-08-30 09:43:48'),
(76, 3, '2019-09-03 09:46:33'),
(77, 3, '2019-09-03 09:57:34'),
(79, 3, '2019-09-04 09:46:58'),
(86, 3, '2019-09-06 09:34:13'),
(88, 3, '2019-09-09 09:42:08'),
(90, 3, '2019-09-11 09:42:04'),
(91, 3, '2019-09-12 09:40:05'),
(92, 3, '2019-09-12 09:59:31'),
(93, 3, '2019-09-13 09:56:12'),
(95, 3, '2019-09-16 09:41:44'),
(101, 3, '2019-09-19 09:52:01'),
(104, 3, '2019-09-20 09:54:20'),
(107, 3, '2019-09-23 09:37:47'),
(108, 3, '2019-09-24 09:25:07'),
(110, 3, '2019-09-25 09:25:46'),
(113, 3, '2019-09-26 09:42:42'),
(114, 3, '2019-09-27 09:50:44'),
(115, 3, '2019-09-30 09:25:16'),
(117, 3, '2019-10-03 09:42:21'),
(123, 3, '2019-10-10 09:25:08'),
(126, 3, '2019-10-14 09:50:07'),
(127, 3, '2019-10-15 09:55:12'),
(129, 3, '2019-10-16 09:48:47');
ALTER TABLE `packages`
ADD PRIMARY KEY (`id`),
ADD KEY `user` (`user`);
期望的结果:
| id | user | date_opened |
| --- | ---- | ------------------- |
| 108 | 3 | 2019-09-24 09:25:07 |
| 110 | 3 | 2019-09-25 09:25:46 |
| 115 | 3 | 2019-09-30 09:25:16 |
| 123 | 3 | 2019-10-10 09:25:08 |
解决方案
select *
from packages
where time(date_opened) between '09:00:00' AND '09:30:00';
https://www.db-fiddle.com/f/i1Sb7zkYf9izia17B5tLHE/0
有一个论点是再次存储时间,与日期时间分开,但 8.0 可能有一种更智能的索引时间和日期的方法;我不确定。
推荐阅读
- spring-boot - 强制终止后 Spring Batch 不更新作业存储库
- r - 来自单独数据框的 R 12 个月回顾列
- azure - 无法添加 Azure 来宾用户以访问存储帐户
- asp.net-web-api - Net Web API 发布到 Azure API 管理服务后出现 500 错误
- json - 如何在反应草稿编辑器中将以 json 形式给出的格式化文本转换为 pdf 和 doc
- delphi - CEF4Delphi证书选择窗口
- node.js - 实时调试冻结的 nodejs 程序
- html - 将列值转换为 html 标签
- python - 如何将文本框添加到 Matplotlib 图的外部?
- php - cakephp 2.x 选择 sql server 数据库的问题