Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách nhận bản ghi từ 24 giờ qua trong MySQL

Đôi khi bạn có thể cần lấy dữ liệu 24 giờ qua hoặc chọn các bản ghi cho 24 giờ qua để báo cáo và phân tích. Dưới đây là cách lấy bản ghi từ 24 giờ qua trong MySQL. Bạn có thể sử dụng truy vấn SQL này để lấy các hàng trong 24 giờ qua trong cơ sở dữ liệu của mình.

Cách lấy bản ghi từ 24 giờ qua trong MySQL

Đây là truy vấn SQL để lấy các bản ghi từ 24 giờ qua trong MySQL.

Giả sử bạn có bảng sau doanh số (ngày_đặt_hàng, số tiền)

mysql> create table sales(order_date datetime, amount int);

mysql> insert into sales(order_date,amount) 
     values('2020-06-07 01:00:00',200),
     ('2020-06-07 02:30:00',350),
     ('2020-06-07 04:40:00',410),
     ('2020-06-07 12:10:00',600),
     ('2020-06-07 15:00:00',300),
     ('2020-06-07 18:55:00',450),
     ('2020-06-07 21:00:00',1200),
     ('2020-06-08 03:00:00',800),
     ('2020-06-08 05:30:00',900),
     ('2020-06-08 07:20:00',100),
     ('2020-06-08 10:10:00',250),
     ('2020-06-08 12:05:00',300),
     ('2020-06-08 13:30:00',200);

mysql> select * from sales;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 01:00:00 |    200 |
| 2020-06-07 02:30:00 |    350 |
| 2020-06-07 04:40:00 |    410 |
| 2020-06-07 12:10:00 |    600 |
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Phần thưởng Đọc:Cách Nhận Bản ghi Đầu tiên trong Mỗi Nhóm trong MySQL

Nhận bản ghi từ 24 giờ qua trong MySQL

Đây là truy vấn SQL để lấy các bản ghi từ 24 giờ qua trong MySQL

mysql> select * from sales
       where order_date > now() - interval 24 hour;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Trong truy vấn SQL ở trên, chúng tôi sử dụng hàm hệ thống MySQL now () để có được ngày giờ hiện tại. Sau đó, chúng tôi sử dụng mệnh đề INTERVAL để chọn các hàng có order_date nằm trong vòng 24 giờ kể từ ngày hiện tại.

Phần thưởng đã đọc:Cách nhận bản ghi 15 ngày qua trong MySQL

Thay vì chỉ định khoảng thời gian bằng giờ, bạn cũng có thể đề cập đến khoảng thời gian đó trong ngày.

mysql> select * from sales
     where order_date > now() - interval 1 day;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Cả hai truy vấn trên sẽ giúp bạn nhận được hồ sơ từ 24 giờ qua.

Phần thưởng đã đọc:Cách lấy bản ghi cuối cùng trong mỗi nhóm trong MySQL

Tuy nhiên, nếu bạn chỉ muốn chọn các hàng cho ngày hôm nay, bạn có thể sử dụng truy vấn sau.

mysql> select * from sales
      where date(order_date) = date(now());
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Trong truy vấn trên, bạn sẽ nhận được các hàng chỉ ngày hiện tại và không phải 24 giờ qua. Chúng tôi sử dụng hàm DATE để chỉ chọn những hàng có giá trị ngày của order_date giống với giá trị ngày của hàm now (), tức là ngày hiện tại.

Ubiq giúp dễ dàng trực quan hóa dữ liệu trong vài phút và theo dõi trong trang tổng quan thời gian thực. Thử nó ngay hôm nay!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi dấu thời gian thành ngày tháng trong truy vấn MySQL

  2. Làm thế nào để chuyển đổi thời gian sang múi giờ của thiết bị iPhone?

  3. Làm cách nào để kiểm tra xem truy vấn MySQL có thành công trong việc sửa đổi dữ liệu bảng cơ sở dữ liệu không?

  4. Cách lưu trữ địa chỉ tương thích với IPv6 trong cơ sở dữ liệu quan hệ

  5. Truyền tham số vào dòng lệnh tập lệnh MySQL