MySQL查询:选择一小时前的数据


<!–

–>

MySQL查询:选择一小时前的数据

在MySQL中,有时候我们需要查询一小时之前的数据。这时,我们可以使用MySQL的DATE_ADD()函数。

假设现在是2021年9月20日下午2点,我们想要查询从下午1点到2点之间的数据,可以使用以下语句:

SELECT * FROM my_table
WHERE create_time BETWEEN DATE_SUB(NOW(), INTERVAL 1 HOUR) AND NOW();

以上查询语句中,NOW()函数返回当前日期和时间。DATE_SUB() 函数从当前日期和时间减去给定的时间间隔,而INTERVAL关键字后的数字表示时间间隔,这里是1小时。

(adsbygoogle = window.adsbygoogle || []).push({});

BETWEEN语句用于限定查询结果的时间范围,保证数据是在1小时之内的。

下面是一个更为具体的例子。

假设我们有一个表名为 sensor_data,包含传感器数据和每条数据的时间戳,如以下结构:

CREATE TABLE sensor_data (
  id INT PRIMARY KEY AUTO_INCREMENT,
  temperature INT,
  humidity INT,
  create_time TIMESTAMP
);

sensor_data 表插入一些示例数据:

INSERT INTO sensor_data (temperature, humidity, create_time)
VALUES (24, 50, NOW()),
       (23, 48, DATE_SUB(NOW(), INTERVAL 30 MINUTE)),
       (24, 49, DATE_SUB(NOW(), INTERVAL 2 HOUR)),
       (25, 50, DATE_SUB(NOW(), INTERVAL 1 DAY));

现在,我们想要查询一小时之前的数据,可以使用以下语句:

SELECT * FROM sensor_data
WHERE create_time BETWEEN DATE_SUB(NOW(), INTERVAL 1 HOUR) AND NOW();

查询结果应该是:

(adsbygoogle = window.adsbygoogle || []).push({});

| id | temperature | humidity | create_time           |
|----|-------------|----------|----------------------|
| 1  | 24          | 50       | 2021-09-20 14:05:47  |
| 2  | 23          | 48       | 2021-09-20 13:35:47  |

阅读更多:

总结

本文介绍了如何在MySQL中查询一小时之前的数据,使用了MySQL的 DATE_SUB()NOW() 函数,以及 BETWEEN 语句。需要注意的是,在实际使用中,我们应该根据具体的需求灵活运用这些函数和语句。