MYSQL数据库,怎样查询一个时间范围内,每个时间点内的数据?

这就是洞。
别相信。
不要这样做。

MySQL中如何使用hour函数查询时间小时数mysql中hour

在 MySQL 中使用小时函数非常简单。
只需添加 hour() 并在括号中写下您的时间字段名称。
无论您是否有日期时间、时间戳或时间类型字段,都可以正常工作。

例如,您有一个名为 order_info 的表和一个名为created_at 的字段,该字段指示下订单的时间。
如果你想查看下午 3 点下的订单是什么,只需编写:
sql 从 order_info 中选择,其中 hour(created_at) = 1 5 ;
这个hour()函数直接取出你的时间中的小时数。
如果你使用的是时间类型的字段,比如有一个叫start_time的字段,那么你可以通过写hour(start_time)来直接获取小时。

例如,看看这个:
sql 创建表订单( id INT 自动递增主键, 订单时间 DATETIME );
插入订单 (order_time) 值 ('2 02 3 -04 -1 2 1 4 :3 0:00'), ('2 02 3 -04 -1 2 1 5 :4 5 :00'), ('2 02 3 -04 -1 2 1 6 :2 0:00');
您运行此查询:
sql SELECT order_time, hour(order_time) AS order_hour FROM 订单;
结果是:
| 订单时间 | 订单时间 | |--------------------|----------| | 2 02 3 -04 -1 2 1 4 :3 0:00 | 1 4 | 1 4 | 2 02 3 -04 -1 2 1 5 :4 5 :00 | 1 5 | 1 5 | 2 02 3 -04 -1 2 1 6 :2 0:00 | 1 6 |
这个小时函数没有什么花哨的,它只是做这个。
如果您还想查看分钟或秒,分钟()和秒()也是如此。

说实话,刚开始用的时候我不太明白为什么要加括号,但是用多了就习惯了。
比如你做某个特定时间点的报表统计,比如下午3 点到4 点之间的订单,你可以通过写hour(column) = 1 5 来过滤掉。

MySQL的时间函数就是这些,用多了就会变得好用。

MySQL实现上周日期查询操作方法分享mysql上周日期

那天,我正在公司数据库管理团队开会,突然有人问:“怎样才能快速找到上周的数据呢?”我盯着看,想知道这是否不容易。
我有条不紊地在白板上写了几条SQL语句,场景就像在黑板上画画一样流畅。

“首先使用 CURDATE() 获取当前日期,然后使用 DATE_SUB() 减去星期,这样就可以获得上周的相同日期。
”当我在白板上写字时,我说:DATE_SUB(CURDATE(), INTERVAL 1 WEEK) AS LAST_WEEK_DATE;
“但有时我们可能需要上周的整个日期范围。
这种情况下,使用WEEKDAY()函数计算今天是星期几,然后根据这个数字调整日期。
第一周和最后一周”然后我写道:DATE_SUB(CURDATE(), INTERVAL WEEKDAY(NOW()) + 6 DAY) as last_week_start_date, DATE_SUB(CURDATE(), INTERVAL WEEKDAY(NOW()) date) as last_week_end_day) as last_week_end_date,
“我们稍后可以使用这个函数。
我们将来可以这样做,”我说完,突然想到,等等,还有一件事。
我教同事最简单的方法使用 DATE_FORMAT() 来格式化日期,所以在白板上我会写 SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 WEEK, '%Y-%m-%d 00:00:00') AS last_week_start_date(URDATE), DATE_B date), '%Y-%m-%d 2 3 :5 9 :5 9 ') Last_week_end_day,
会后我还在想这个方法简单又实用。
但是,对于不同的数据库,您可能需要调整功能,对吗?