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

Cách chọn bản ghi từ 24 giờ qua bằng PostgreSQL

Đôi khi, bạn có thể cần lấy hồ sơ từ 24 giờ qua hoặc chọn các hàng trong 24 giờ qua để báo cáo và phân tích. Đây là cách chọn bản ghi từ 24 giờ qua bằng PostgreSQL.


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

Đây là truy vấn SQL để lấy bản ghi từ 24 giờ qua trong PostgreSQL. Giả sử bạn có bảng sau doanh số (ngày_đặt_hàng, số tiền) .

postgres-# create table sales(order_date timestamp, amount int);

postgres-# 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);

postgres-# 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 tăng kết nối tối đa trong PostgreSQL


Nhận các hàng từ 24 giờ qua trong PostgreSQL

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

postgres-# select * from sales
       where order_date > now() - interval '24 hours';
+---------------------+--------+
| 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 PostgreSQL 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:Mẹo điều chỉnh hiệu suất PostgreSQL

Bạn cũng có thể chỉ định khoảng thời gian theo ngày, thay vì giờ.

postgres-# 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 |
+---------------------+--------+

Phần thưởng đọc:5 công cụ giám sát truy vấn PostgreSQL hàng đầu

Nếu bạn chỉ muốn chọn các bản ghi cho ngày hôm nay và không phải 24 giờ qua, hãy sử dụng truy vấn sau.

postgres-# select * from sales
      where date_trunc('date',order_date) = current_date;
+---------------------+--------+
| 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_TRUNCT để 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 biến hệ thống CURRENT_DATE, 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. CHỌN hoặc CHÈN một hàng trong một lệnh

  2. Chú thích của Spring Boot Query với nativeQuery không hoạt động trong Postgresql

  3. Cách sao lưu và khôi phục cơ sở dữ liệu PostgreSQL

  4. THỰC HIỆN ... Câu lệnh USING trong PL / pgSQL không hoạt động với loại bản ghi?

  5. Mệnh đề IN với NULL hoặc IS NULL