次のコードを使用して、今週誕生日の人をリストしようとしています。
declare @START_DATE date;
set @START_DATE = DATEADD(dd, 1 - DATEPART(dw, getdate()), getdate())
declare @END_DATE date;
set @END_DATE = DATEADD(dd,6, @START_DATE)
set DATEFIRST 1
SELECT @START_DATE as StartDate, Personel.DogumTarihi , @END_DATE as EndDate
,[Adi]
,[Soyadi]
,[BirimAdi]
,[DogumTarihi]
,[MudurlukAdi]
,[Gorevi]
,[CepTelefonu]
,[EvTelefonu]
from Personel
where (
DATEPART(m, Personel.DogumTarihi) = DATEPART(m, @START_DATE)
and DATEPART(DAY, Personel.DogumTarihi) >= DATEPART(DAY, @START_DATE)
and DATEPART(DAY, Personel.DogumTarihi) <= DATEPART(DAY, @END_DATE)
)
OR (
DATEPART(m, Personel.DogumTarihi) = (DATEPART(m, @START_DATE)+ 1)
and DATEPART(DAY, Personel.DogumTarihi) <= DATEPART(DAY, @END_DATE)
)
まず、開始日を設定し、開始日に従って終了日を計算します。次に、月曜日を週の最初の曜日に設定しました。しかし、これを実行するたびに、異なる開始日が表示されます。私は Sql Scripting にまったく慣れていません。宣言で間違っている可能性がありますが、それを見つけることができませんでした。前もって感謝します。