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

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

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,
  JULIANDAY(arrival) - JULIANDAY(departure) AS date_difference,
  JULIANDAY(arrival) - JULIANDAY(departure) + 1 AS days_inclusive
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, hãy sử dụng JULIANDAY() hàm đếm số ngày kể từ buổi trưa ở Greenwich vào ngày 24 tháng 11 năm 4714 trước Công nguyên. Bạn sử dụng JULIANDAY(date) cho mỗi ngày trong hai ngày; chỉ cần trừ chúng bằng dấu trừ (-):

JULIANDAY(arrival) - JULIANDAY(departure)

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 chênh lệch số ngày:

JULIANDAY(arrival) - JULIANDAY(departure) + 1.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phòng - Sử dụng SQLites bên ngoài cũng như DB nội bộ

  2. Làm cách nào để chèn hình ảnh vào cơ sở dữ liệu sqlite

  3. Cơ sở dữ liệu sẽ không bị xóa khi gỡ cài đặt Ứng dụng Android

  4. LỖI:Không thể đọc hàng 0, cột -1 từ CursorWindow. Đảm bảo Con trỏ được khởi tạo chính xác trước khi truy cập dữ liệu

  5. android.database.CursorIndexOutOfBoundsException