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

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

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 , hoặc số ngày kể từ khi arrival khởi hành hoàn toàn.

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,
  DATEDIFF(arrival, departure) AS date_difference,
  DATEDIFF(arrival, departure) + 1 AS days_inclusive
FROM travel;

Kết quả là:

id khởi hành đến date_difference days_inclusive
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 trong MySQL, hãy sử dụng DATEDIFF(enddate, startdate) hàm số. Sự khác biệt giữa startdateenddate được thể hiện bằng ngày. Trong trường hợp này, enddatearrivalstartdatedeparture .

Tuy nhiên, 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 hoàn toàn . Bạn cần thêm 1 ngày vào khoản chênh lệch:DATEDIFF(arrival, 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. Chuyển từ MySQL sang PostgreSQL - Điều bạn nên biết

  2. Vòng lặp qua các tập kết quả trong MySQL

  3. Cách nhập cơ sở dữ liệu bằng phpMyAdmin

  4. 2 cách liệt kê tất cả các hàm trong MySQL

  5. Cài đặt Ruby gem mysql2 không thành công