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

Làm cách nào để xác định ngày cuối cùng của tháng trước bằng PostgreSQL?

Cả hai giải pháp bao gồm ngày cuối cùng của tháng trước và cũng bao gồm tất cả "hôm nay".

Cho một date cột:

SELECT *
FROM   tbl
WHERE  my_date BETWEEN date_trunc('month', now())::date - 1
               AND     now()::date

Bạn có thể trừ các giá trị số nguyên thuần túy từ một date (nhưng không phải từ timestamp ) để trừ ngày. Đây là cách đơn giản và nhanh nhất.

Đối với timestamp cột:

SELECT *
FROM   tbl
WHERE  my_timestamp >= date_trunc('month', now()) - interval '1 day'
AND    my_timestamp <  date_trunc('day'  , now()) + interval '1 day'

Lưu ý rằng tôi sử dụng < toán tử cho điều kiện thứ hai để có kết quả chính xác (~ "trước ngày mai").

Tôi không truyền đến date trong truy vấn thứ hai. Thay vào đó, tôi thêm interval '1 day' , để tránh truyền qua lại.

Hãy xem các loại ngày / giờ và các chức năng trong sách hướng dẫn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. So sánh các kiểu cột cơ sở dữ liệu trong MySQL, PostgreSQL và SQLite? (Bản đồ chéo)

  2. 3 cách liệt kê tất cả các thủ tục được lưu trữ tham chiếu đến một bảng trong PostgreSQL

  3. chuỗi byte không hợp lệ để mã hóa UTF8

  4. Cách giám sát PostgreSQL đang chạy bên trong Docker Container:Phần thứ hai

  5. Cách thực hiện thao tác cập nhật trên các cột kiểu JSONB trong Postgres 9.4