Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Dapatkan jumlah akhir pekan antara dua tanggal dalam SQL

Saya mencoba logika ini dengan beberapa kasus tepi dan tampaknya berhasil.

SELECT DATEDIFF(d, @dFrom, @dTo)/7+1
    + CASE WHEN DATEPART(dw,@dFrom) IN (1,7) THEN -1 ELSE 0 END
    + CASE WHEN DATEPART(dw,@dTo) IN (1,7) THEN -1 ELSE 0 END

Anda dapat mengubah pernyataan CASE tergantung pada bagaimana Anda ingin menangani kasus di mana tanggal mulai atau akhir adalah di akhir pekan. Dalam kasus saya, saya tidak menyertakan akhir pekan jika tanggal mulai atau akhir adalah hari Sabtu atau Minggu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Bagaimana menunjukkan nilai '0' selama sebulan, jika tidak ada data di tabel untuk bulan itu

  2. Bagaimana saya bisa mengedit nilai INSERT di pemicu di SQL Server?

  3. TSQL - Tambahkan Kolom ke Semua Tabel di Database [ Contoh Kursor]

  4. Parameter keluaran prosedur tersimpan di SQL Server Profiler

  5. Temukan, Prioritaskan, dan Selesaikan Masalah SQL Server Dalam Beberapa Menit