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

SQL:Trừ 1 ngày cho ngày dấu thời gian

Sử dụng INTERVAL gõ vào nó. Ví dụ:

--yesterday
SELECT NOW() - INTERVAL '1 DAY';

--Unrelated: PostgreSQL also supports some interesting shortcuts:
SELECT 
    'yesterday'::TIMESTAMP, 
    'tomorrow'::TIMESTAMP, 
    'allballs'::TIME AS aka_midnight;

Sau đó, bạn có thể làm như sau:

SELECT 
    org_id,
    count(accounts) AS COUNT,
    ((date_at) - INTERVAL '1 DAY') AS dateat
FROM 
    sourcetable
WHERE 
    date_at <= now() - INTERVAL '130 DAYS'
GROUP BY 
    org_id,
    dateat;

LỜI KHUYÊN

Mẹo 1

Bạn có thể nối nhiều toán hạng. Ví dụ:làm thế nào để lấy ngày cuối cùng của tháng hiện tại?

SELECT date_trunc('MONTH', CURRENT_DATE) + INTERVAL '1 MONTH - 1 DAY';

Mẹo 2

Bạn cũng có thể tạo khoảng thời gian bằng cách sử dụng make_interval , hữu ích khi bạn cần tạo nó trong thời gian chạy (không sử dụng các ký tự):

SELECT make_interval(days => 10 + 2);
SELECT make_interval(days => 1, hours => 2);
SELECT make_interval(0, 1, 0, 5, 0, 0, 0.0);

Thông tin thêm:

Các hàm và toán tử ngày / giờ

datatype-datetime (Giá trị đặc biệt) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL chọn giá trị và tăng cùng một lúc

  2. Làm cách nào để khởi động PostgreSQL trên Windows?

  3. Truy vấn postgresql cho các đối tượng trong trường JSONB lồng nhau

  4. SQLAlchemy Core - tạo biểu thức PostgreSQL SUBSTRING?

  5. Làm thế nào để cấu hình pgAdmin III để mở cơ sở dữ liệu mặc định và chọn nút bảng khi khởi động?