Bagaimana mengetahui jumlah hari libur dalam suatu periode yang ditentukan di MSSQL ?
kasus kali ini, dalam suatu perusahaan periode gaji nya dimulai per tanggal 25 dibulan sebelumnya dan berahir di tanggal 24 di bulan berjalan , bagaimana menentukan jumlah hari libur ( minggu ) jika pegawai bebas libur dihari apa saja sebanyak hari minggu dalam periode gaji tersebut ?
sedangkan dalam 1 tahun jumlah hari minggu di 1 periode bisa berbeda dengan periode lainnya
untuk menghitung jumlah hari minggu di MSSQL saya deklarasikan terlebih dahulu periode tanggalmulai dan tanggal akhir kemudian menggunakan fungsi looping, untuk melihat fungsi looping lainnya bisa cek di artikel sebelumnya fungsi looping di sql server
-- deklarasikan tanggal awal dan akhir periode
declare @tanggalAwal as datetime
declare @tanggalakhir as datetime
declare @periode as int -- untuk menentukan total hari dalam periode
declare @i int -- untuk angka looping hingga mencapai jumlah hari
declare @total as int total minggu dalam periode tersebut
set @total = 0
set @i = 0
set @tanggalAwal = '2017-01-25'
set @tanggalakhir = '2017-02-24'
set @periode = DATEDIFF(dd,@tanggalAwal,@tanggalAkhir)
while @i <= @periode
begin
if DATENAME(WEEKDAY,(dateadd(dd,@i,@tanggalAwal))) in (N'Sunday')
select @total = @total + 1
set @i = @i + 1
end
print @total
hasil nya seperti pada gambar berikut :
dari periode 25 januari 2017 s/d 24 februari 2017
terdapat 4 hari minggu
bagaimana untuk periode 25 maret 2017 hingga 24 april 2017 yang jumlah hari minggu nya ada 5 jika dihitung manual ?
silahkan coba sendiri...
kasus kali ini, dalam suatu perusahaan periode gaji nya dimulai per tanggal 25 dibulan sebelumnya dan berahir di tanggal 24 di bulan berjalan , bagaimana menentukan jumlah hari libur ( minggu ) jika pegawai bebas libur dihari apa saja sebanyak hari minggu dalam periode gaji tersebut ?
sedangkan dalam 1 tahun jumlah hari minggu di 1 periode bisa berbeda dengan periode lainnya
untuk menghitung jumlah hari minggu di MSSQL saya deklarasikan terlebih dahulu periode tanggalmulai dan tanggal akhir kemudian menggunakan fungsi looping, untuk melihat fungsi looping lainnya bisa cek di artikel sebelumnya fungsi looping di sql server
ig : @sajuta_screenprint |
-- deklarasikan tanggal awal dan akhir periode
declare @tanggalAwal as datetime
declare @tanggalakhir as datetime
declare @periode as int -- untuk menentukan total hari dalam periode
declare @i int -- untuk angka looping hingga mencapai jumlah hari
declare @total as int total minggu dalam periode tersebut
set @total = 0
set @i = 0
set @tanggalAwal = '2017-01-25'
set @tanggalakhir = '2017-02-24'
set @periode = DATEDIFF(dd,@tanggalAwal,@tanggalAkhir)
while @i <= @periode
begin
if DATENAME(WEEKDAY,(dateadd(dd,@i,@tanggalAwal))) in (N'Sunday')
select @total = @total + 1
set @i = @i + 1
end
print @total
hasil nya seperti pada gambar berikut :
dari periode 25 januari 2017 s/d 24 februari 2017
terdapat 4 hari minggu
bagaimana untuk periode 25 maret 2017 hingga 24 april 2017 yang jumlah hari minggu nya ada 5 jika dihitung manual ?
silahkan coba sendiri...