SQL Server’da Çalışanların Yaklaşan Doğum Günlerini Listelemek
Herkese merhaba,
Bu yazıda SQL Server’da çalışanların yaklaşan doğum günlerini listelemek hakkında bilgi vereceğim.
SQL Server’da bazı durumlarda çalışanların yaklaşan doğum günlerini görmek isteyebiliriz.
Genelde cümlelerime yukarıdaki şekilde başlıyorum ama bu sefer daha farklı bir giriş yapayım.
Şirket yetkilileri ya da sorumluları aşağıdaki T-SQL sorgusunu kullanarak çalışanlarının yaklaşan doğum günlerinin bilgisini alıp güzel süprizler yapmak isteyebilirler.
Bunu kaç şirket ya da yetkili uygular bilemiyoruz fakat lazım olursa buradan alıp kullanabilirsiniz.
Örnek kodları aşağıdan inceleyebilirsiniz.
--Tablonun oluşturulması
CREATE TABLE Calisanlar
(
id INT PRIMARY KEY IDENTITY(1, 1),
AdSoyad NVARCHAR(100),
DogumTarihi DATETIME
);
--Tabloya veriler eklenmesi
INSERT INTO dbo.Calisanlar
(
AdSoyad,
DogumTarihi
)
VALUES
(N'YavuzSelim', '19861112'),
(N'MustafaYavuz', '19651115'),
(N'MustafaHasan', '19651116'),
(N'MustafaBilge', '19461119'),
(N'BilgeFevziye', '19851119'),
(N'BilgeHasan', '19851123');
--Tablomuzun kontrol edilmesi
SELECT *
FROM dbo.Calisanlar;
--Bir hafta içinde doğum günü yaklaşanlar ve doğum gününe kalan süre. Bir haftalık süreyi değiştirebilirsiniz.
SELECT c.AdSoyad AS [Ad Soyad],
c.DogumTarihi AS [Doğum Tarihi],
FLOOR(DATEDIFF(dd, c.DogumTarihi, GETDATE()) / 365.25) AS [Su Anki Yaş],
FLOOR(DATEDIFF(dd, c.DogumTarihi, GETDATE() + 7) / 365.25) AS [Bir Hafta Sonra Yaşı],
FLOOR(DATEDIFF(dd, DATEPART(dd, GETDATE()), DATEPART(dd, c.DogumTarihi))) AS [Doğum gününe kalan süre]
FROM dbo.Calisanlar c
WHERE 1 = (FLOOR(DATEDIFF(dd, c.DogumTarihi, GETDATE() + 7) / 365.25))
- (FLOOR(DATEDIFF(dd, c.DogumTarihi, GETDATE()) / 365.25));
Kodu çalıştırdığınızda aşağıdaki gibi bir sonuç alacaksınız.
Görüldüğü üzere 7 gün içinde doğum günü olacak olan kişiler ve bu doğum günü sürelerine kaç gün kaldığı bilgisi listelenmiş oldu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.