用 MySQL 抓取最近一小時新增的行?


你可以使用 MySQL 中的 date-sub() 和 now() 函式來獲取最近一小時新增的行。

語法

語法如下 −

select *from yourTableName
where yourDateTimeColumnName <=date_sub(now(),interval 1 hour);

上面的查詢給出了最近一小時新增的結果。為了理解上述概念,我們首先建立一個表。建立表的查詢如下 −

mysql> create table LastHourRecords
-> (
-> Id int,
-> Name varchar(100),
-> Login datetime
-> );
Query OK, 0 rows affected (0.67 sec)

使用 insert 命令以 datetime 的形式插入記錄。插入記錄的查詢如下 −

mysql> insert into LastHourRecords values(1,'John',' 2018-12-19 10:00:00');
Query OK, 1 row affected (0.17 sec)

mysql> insert into LastHourRecords values(2,'Carol','2018-12-19 10:10:00');
Query OK, 1 row affected (0.15 sec)

mysql> insert into LastHourRecords values(3,'Sam','2018-12-19 10:05:00');
Query OK, 1 row affected (0.13 sec)

mysql> insert into LastHourRecords values(4,'Mike','2018-12-18 12:10:00');
Query OK, 1 row affected (0.10 sec)

使用 select 語句從表中顯示所有記錄。查詢如下 −

mysql> select *from LastHourRecords;

輸出

+------+-------+---------------------+
| Id   | Name  | Login               |
+------+-------+---------------------+
| 1    | John  | 2018-12-19 10:00:00 |
| 2    | Carol | 2018-12-19 10:10:00 |
| 3    | Sam   | 2018-12-19 10:05:00 |
| 4    | Mike  | 2018-12-18 12:10:00 |
+------+-------+---------------------+
4 rows in set (0.00 sec)

讓我們看看獲取過去一小時新增行的查詢 −

mysql> select *from LastHourRecords
-> where Login <=Date_sub(now(),interval 1 hour);

輸出

+------+-------+---------------------+
| Id   | Name  | Login               |
+------+-------+---------------------+
| 1    | John  | 2018-12-19 10:00:00 |
| 2    | Carol | 2018-12-19 10:10:00 |
| 3    | Sam   | 2018-12-19 10:05:00 |
+------+-------+---------------------+
3 rows in set (0.00 sec)

更新於: 25-6-2020

5 千次瀏覽

啟動你的職業

完成該課程後獲得認證

開始
廣告
© . All rights reserved.