|
DEKLARASIKAN @dt tanggalwaktu ATUR @dt=TANGGAL() NYATAKAN @number int ATUR @number=3 --1. Tentukan tanggal hari pertama atau terakhir tahun --A. Hari pertama dalam setahun PILIH Co nVERT(char(5),@dt,120)+ '1-1' --B. Hari terakhir dalam setahun PILIH Co nVERT(char(5),@dt,120)+ '12-31' --2. Hari pertama atau terakhir dari kuartal di mana tanggal yang ditentukan berada --A. Hari pertama kuartal PILIH Co nVERT(tanggalwaktu, Co nVERT (char(8), DATEADD (Bulan nth, DATEPART (Seperempat, @dt) * 3 Bulan nth (@dt) -2, @dt), 120)+ '1 ')
--B. Hari terakhir kuartal (putusan KASUS) PILIH Co nVERT(tanggalwaktu, Co nVERT (char(8), DATEADD (Bulan nth, DATEPART (Seperempat, @dt) * 3 Bulan nth (@dt), @dt), 120) +KASUS KETIKA DATEPART(Seperempat,@dt) dalam(1,4) KEMUDIAN '31 'ELSE '30' END) --C. Hari terakhir kuartal (algoritma push langsung) PILIH TANGGALTAMBAH(Hari,-1, Co nVERT (char(8), DATEADD (Bulan nth, 1 + DATEPART (Seperempat, @dt) * 3 Bulan nth (@dt), @dt), 120)+ '1 ') --3.Hari pertama atau terakhir bulan di mana tanggal yang ditentukan berada --A. Hari pertama bulan PILIH Co nVERT(tanggalwaktu,Co nVERT(char(8),@dt,120)+ '1')
--B. Hari terakhir dalam sebulan PILIH DATEADD(Hari,-1,Co nVERT(char(8),DATEADD(Bulan nth,1,@dt),120)+ '1') --C. Hari terakhir dalam sebulan (mudah digunakan metode yang salah) PILIH DATEADD(Bulan nth,1,DATEADD(Hari,-HARI(@dt),@dt)) --4. Setiap hari dalam seminggu di mana tanggal yang ditentukan berada PILIH DATEADD(Hari,@number-DATEPART(Hari kerja,@dt),@dt)
--5. Setiap hari dalam seminggu di mana tanggal yang ditentukan berada --Sebuah. Minggu sebagai hari pertama dalam seminggu PILIH DATEADD(Hari,@number-(DATEPART(Hari kerja,@dt)+@@DATEFIRST-1)%7,@dt)
--B. Senin adalah hari pertama dalam seminggu PILIH DATEADD(Hari,@number-(DATEPART(Hari kerja,@dt)+@@DATEFIRST-2)%7-1,@dt)
|