Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Menghitung Selisih Antara Dua Tanggal di MySQL

Masalah:

Anda memiliki dua kolom dengan tipe tanggal dan Anda ingin menghitung perbedaan di antara keduanya.

Contoh:

Dalam travel tabel, ada tiga kolom:id , departure , dan arrival . Anda ingin menghitung selisih antara arrival dan departure , atau jumlah hari dari arrival untuk berangkat secara inklusif.

travel tabel terlihat seperti ini:

id keberangkatan kedatangan
1 25-03-2018 05-04-2018
2 12-09-2019 23-09-2019
3 14-07-2018 14-07-2018
4 05-01-2018 08-01-2018

Solusi:

SELECT
  id,
  departure,
  arrival,
  DATEDIFF(arrival, departure) AS date_difference,
  DATEDIFF(arrival, departure) + 1 AS days_inclusive
FROM travel;

Hasilnya adalah:

id keberangkatan kedatangan date_difference hari_inklusif
1 25-03-2018 05-04-2018 11 12
2 12-09-2019 23-09-2019 11 12
3 14-07-2018 14-07-2018 0 1
4 05-01-2018 08-01-2018 3 4

Diskusi:

Untuk menghitung perbedaan antara tanggal di MySQL, gunakan DATEDIFF(enddate, startdate) fungsi. Perbedaan antara startdate dan enddate dinyatakan dalam hari. Dalam hal ini, enddate adalah arrival dan startdate adalah departure .

Namun, dalam kebanyakan kasus, yang sebenarnya Anda inginkan adalah jumlah hari dari kencan pertama hingga kencan kedua termasuk . Anda perlu menambahkan selisih 1 hari: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. Menanyakan SKEMA INFORMASI MySQL:Mengapa? Bagaimana?

  2. Seberapa besar database MySQL dapat diperoleh sebelum kinerja mulai menurun

  3. Bagaimana cara mendapatkan ID terakhir yang dimasukkan dari tabel MySQL di PHP?

  4. Bagaimana menghubungkan ke database menggunakan klien MySQL Navicat

  5. UnicodeEncodeError:codec 'latin-1' tidak dapat menyandikan karakter