<!–
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
语句。需要注意的是,在实际使用中,我们应该根据具体的需求灵活运用这些函数和语句。