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

Hitung hari antara dua tanggal, tidak termasuk akhir pekan (hanya MySQL)

Cukup coba menggunakan fungsi sederhana :

CREATE FUNCTION TOTAL_WEEKDAYS(date1 DATE, date2 DATE)
RETURNS INT
RETURN ABS(DATEDIFF(date2, date1)) + 1
     - ABS(DATEDIFF(ADDDATE(date2, INTERVAL 1 - DAYOFWEEK(date2) DAY),
                    ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2
     - (DAYOFWEEK(IF(date1 < date2, date1, date2)) = 1)
     - (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7);

Tes :

SELECT TOTAL_WEEKDAYS('2013-08-03', '2013-08-21') weekdays1,
       TOTAL_WEEKDAYS('2013-08-21', '2013-08-03') weekdays2;

Hasil :

| WEEKDAYS1 | WEEKDAYS2 |
-------------------------
|        13 |        13 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendapatkan Catatan dari Hari Ini di MySQL

  2. Kiat Penyetelan Kinerja MySQL Untuk Mengoptimalkan Basis Data

  3. Menyebarkan &Mengelola Cluster NDB MySQL dengan ClusterControl

  4. Apa cara yang diketahui untuk menyimpan struktur pohon dalam DB relasional?

  5. Bagaimana menemukan data yang tidak ada dari Tabel lain dengan BERGABUNG?