MS SQL ile bugün doğanların bulunması veya SQL de bu ay doğanların bulunması

MS SQL ile bugün doğanların bulunması veya SQL de bu ay doğanların bulunması

MS SQL de aşağıdaki gibi bir bir veri seti içinde bugün doğanları filtrelemek istenirse, tarih alanının gün ve ay olarak ayrılması gerekmektedir. 

Tarih alanınında gün ve ay bilgisi alabilmek için Day(TARIH),  Ay bilgisini almak için Month(TARIH) fonksiyonlarını kullanabiliriz. 

Veri kaynağı için geçici tablo oluşturma 

SELECT 1 AS ID,'AHMET1' AS ADI,'DENEME1' AS SOYADI,'1990-08-19' AS DTARIH
INTO #GECICI_TABLO
UNION
SELECT 2 AS ID, 'AHMET2' AS ADI,'DENEME2' AS SOYADI,'1988-01-31' AS DTARIH
UNION
SELECT 3 AS ID, 'AHMET3' AS ADI,'DENEME3' AS SOYADI,'1985-08-31' AS DTARIH
UNION
SELECT 4 AS ID,'AHMET4' AS ADI,'DENEME4' AS SOYADI,'1984-05-11' AS DTARIH
UNION
SELECT 5 AS ID,'AHMET5' AS ADI,'DENEME5' AS SOYADI,'1980-08-20' AS DTARIH
UNION
SELECT 6 AS ID,'AHMET6' AS ADI,'DENEME6' AS SOYADI,'1978-05-28' AS DTARIH
UNION
SELECT 7 AS ID,'AHMET7' AS ADI,'DENEME7' AS SOYADI,'1990-06-25' AS DTARIH
UNION
SELECT 8 AS ID,'AHMET8' AS ADI,'DENEME8' AS SOYADI,'1992-08-22' AS DTARIH
UNION
SELECT 9 AS ID,'AHMET9' AS ADI,'DENEME9' AS SOYADI,'1979-12-22' AS DTARIH
UNION
SELECT 10 AS ID,'AHMET10' AS ADI,'DENEME10' AS SOYADI,'1993-09-06' AS DTARIH
UNION
SELECT 11 AS ID,'AHMET11' AS ADI,'DENEME11' AS SOYADI,'1981-01-18' AS DTARIH
UNION
SELECT 12 AS ID,'AHMET12' AS ADI,'DENEME12' AS SOYADI,'1983-03-29' AS DTARIH
UNION
SELECT 13 AS ID,'AHMET13' AS ADI,'DENEME13' AS SOYADI,'1982-06-05' AS DTARIH
UNION
SELECT 14 AS ID,'AHMET14' AS ADI,'DENEME14' AS SOYADI,'1990-05-28' AS DTARIH
UNION
SELECT 15 AS ID,'AHMET15' AS ADI,'DENEME15' AS SOYADI,'1991-02-15' AS DTARIH
UNION
SELECT 16 AS ID,'AHMET16' AS ADI,'DENEME16' AS SOYADI,'1977-05-03' AS DTARIH
UNION
SELECT 17 AS ID,'AHMET17' AS ADI,'DENEME17' AS SOYADI,'1984-05-11' AS DTARIH
UNION
SELECT 18 AS ID,'AHMET18' AS ADI,'DENEME18' AS SOYADI,'1987-08-19' AS DTARIH
UNION
SELECT 19 AS ID,'AHMET19' AS ADI,'DENEME19' AS SOYADI,'1970-11-11' AS DTARIH
UNION
SELECT 20 AS ID,'AHMET20' AS ADI,'DENEME20' AS SOYADI,'1980-05-11' AS DTARIH
UNION
SELECT 21 AS ID,'AHMET21' AS ADI,'DENEME21' AS SOYADI,'1979-11-29' AS DTARIH
UNION
SELECT 22 AS ID,'AHMET22' AS ADI,'DENEME22' AS SOYADI,'1992-03-15' AS DTARIH
UNION
SELECT 23 AS ID,'AHMET23' AS ADI,'DENEME23' AS SOYADI,'1988-12-16' AS DTARIH
UNION
SELECT 24 AS ID,'AHMET24' AS ADI,'DENEME24' AS SOYADI,'1996-03-08' AS DTARIH
UNION
SELECT 25 AS ID,'AHMET25' AS ADI,'DENEME25' AS SOYADI,'1995-08-31' AS DTARIH

Oluşturduğumuz geçici tablomuzun içeriği aşağıdaki gibidir. 

SELECT * FROM #GECICI_TABLO 

ID ADI SOYADI DTARIH
1 AHMET1 DENEME1 19.08.1990
2 AHMET2 DENEME2 31.01.1988
3 AHMET3 DENEME3 31.08.1985
4 AHMET4 DENEME4 11.05.1984
5 AHMET5 DENEME5 20.08.1980
6 AHMET6 DENEME6 28.05.1978
7 AHMET7 DENEME7 25.06.1990
8 AHMET8 DENEME8 22.08.1992
9 AHMET9 DENEME9 22.12.1979
10 AHMET10 DENEME10 06.09.1993
11 AHMET11 DENEME11 18.01.1981
12 AHMET12 DENEME12 29.03.1983
13 AHMET13 DENEME13 05.06.1982
14 AHMET14 DENEME14 28.05.1990
15 AHMET15 DENEME15 15.02.1991
16 AHMET16 DENEME16 03.05.1977
17 AHMET17 DENEME17 11.05.1984
18 AHMET18 DENEME18 19.08.1987
19 AHMET19 DENEME19 11.11.1970
20 AHMET20 DENEME20 11.05.1980
21 AHMET21 DENEME21 29.11.1979
22 AHMET22 DENEME22 15.03.1992
23 AHMET23 DENEME23 16.12.1988
24 AHMET24 DENEME24 08.03.1996
25 AHMET25 DENEME25 31.08.1995

--BUGÜN DOĞANLAR 

SELECT  ADI,SOYADI,DTARIH,DAY(DTARIH) AS GUN,MONTH(DTARIH) AS AY,YEAR(DTARIH) AS YIL
FROM #GECICI_TABLO
WHERE DAY(DTARIH)=DAY(GETDATE()) AND MONTH(DTARIH)=MONTH(GETDATE())

 *Burada kullanılan getdate() fonksiyonu günün tarihini verir. Dolayısıyla bu sorgu gün değiştikçe hergün için dinamik çalışır.

 Sonuç : 

ADI SOYADI DTARIH GUN AY YIL
AHMET6 DENEME6 28.05.1978 28 5 1978
AHMET14 DENEME14 28.05.1990 28 5

1990

--BU AY DOĞANLAR 

SELECT  ADI,SOYADI,DTARIH,DAY(DTARIH) AS GUN,MONTH(DTARIH) AS AY,YEAR(DTARIH) AS YIL
FROM #GECICI_TABLO
WHERE MONTH(DTARIH)=MONTH(GETDATE())


İlgili Yazılar