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

Cách tính toán sự khác biệt giữa hai ngày trong PostgreSQL / Oracle

Vấn đề:

Bạn có hai cột của loại ngày và bạn muốn tính toán sự khác biệt giữa chúng.

Ví dụ:

Trong travel bảng, có ba cột:id , departurearrival . Bạn muốn tính toán sự khác biệt giữa arrivaldeparture và số ngày từ khi đến nơi đến khi khởi hành bao gồm .

travel bảng trông như thế này:

id khởi hành đến
1 2018-03-25 2018-04-05
2 2019-09-12 2019-09-23
3 2018-07-14 2018-07-14
4 2018-01-05 2018-01-08

Giải pháp:

SELECT
  id,
  departure,
  arrival,
  arrival - departure AS date_difference,
  arrival - departure + 1 AS days
FROM travel;

Kết quả là:

id khởi hành đến date_difference ngày
1 2018-03-25 2018-04-05 11 12
2 2019-09-12 2019-09-23 11 12
3 2018-07-14 2018-07-14 0 1
4 2018-01-05 2018-01-08 3 4

Thảo luận:

Để đếm sự khác biệt giữa các ngày dưới dạng ngày trong PostgreSQL hoặc Oracle, bạn chỉ cần trừ một ngày cho ngày kia, ví dụ:arrival - departure .

Nhưng trong hầu hết các trường hợp, điều bạn thực sự muốn là số ngày từ ngày đầu tiên đến ngày thứ hai bao gồm . Sau đó, bạn cần thêm 1 ngày vào số ngày chênh lệch:arrival - departure + 1 .


No
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Áp dụng chế độ Downtime và Hotpatch trong áp dụng R12.2

  2. Làm thế nào để triển khai các mối quan hệ một-một, một-nhiều và nhiều-nhiều trong khi thiết kế bảng?

  3. Cách tìm Lịch sử chờ đợi của phiên Oracle

  4. Loại trừ các bảng không được hỗ trợ để được ghi lại bởi các luồng Oracle

  5. Java cho OS X 2013-004 ảnh hưởng (phá vỡ) các ứng dụng Swing như thế nào?