İçeriğe geç

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

5.946 defa okundu

Konu: İnsan Kaynakları

MS SQL de aşağıdaki gibi 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

SQL
  1. SELECT 1 AS ID,'AHMET1' AS ADI,'DENEME1' AS SOYADI,'1990-08-19' AS DTARIH
  2. INTO #GECICI_TABLO
  3. UNION
  4. SELECT 2 AS ID, 'AHMET2' AS ADI,'DENEME2' AS SOYADI,'1988-01-31' AS DTARIH
  5. UNION
  6. SELECT 3 AS ID, 'AHMET3' AS ADI,'DENEME3' AS SOYADI,'1985-08-31' AS DTARIH
  7. UNION
  8. SELECT 4 AS ID,'AHMET4' AS ADI,'DENEME4' AS SOYADI,'1984-05-11' AS DTARIH
  9. UNION
  10. SELECT 5 AS ID,'AHMET5' AS ADI,'DENEME5' AS SOYADI,'1980-08-20' AS DTARIH
  11. UNION
  12. SELECT 6 AS ID,'AHMET6' AS ADI,'DENEME6' AS SOYADI,'1978-05-28' AS DTARIH
  13. UNION
  14. SELECT 7 AS ID,'AHMET7' AS ADI,'DENEME7' AS SOYADI,'1990-06-25' AS DTARIH
  15. UNION
  16. SELECT 8 AS ID,'AHMET8' AS ADI,'DENEME8' AS SOYADI,'1992-08-22' AS DTARIH
  17. UNION
  18. SELECT 9 AS ID,'AHMET9' AS ADI,'DENEME9' AS SOYADI,'1979-12-22' AS DTARIH
  19. UNION
  20. SELECT 10 AS ID,'AHMET10' AS ADI,'DENEME10' AS SOYADI,'1993-09-06' AS DTARIH
  21. UNION
  22. SELECT 11 AS ID,'AHMET11' AS ADI,'DENEME11' AS SOYADI,'1981-01-18' AS DTARIH
  23. UNION
  24. SELECT 12 AS ID,'AHMET12' AS ADI,'DENEME12' AS SOYADI,'1983-03-29' AS DTARIH
  25. UNION
  26. SELECT 13 AS ID,'AHMET13' AS ADI,'DENEME13' AS SOYADI,'1982-06-05' AS DTARIH
  27. UNION
  28. SELECT 14 AS ID,'AHMET14' AS ADI,'DENEME14' AS SOYADI,'1990-05-28' AS DTARIH
  29. UNION
  30. SELECT 15 AS ID,'AHMET15' AS ADI,'DENEME15' AS SOYADI,'1991-02-15' AS DTARIH
  31. UNION
  32. SELECT 16 AS ID,'AHMET16' AS ADI,'DENEME16' AS SOYADI,'1977-05-03' AS DTARIH
  33. UNION
  34. SELECT 17 AS ID,'AHMET17' AS ADI,'DENEME17' AS SOYADI,'1984-05-11' AS DTARIH
  35. UNION
  36. SELECT 18 AS ID,'AHMET18' AS ADI,'DENEME18' AS SOYADI,'1987-08-19' AS DTARIH
  37. UNION
  38. SELECT 19 AS ID,'AHMET19' AS ADI,'DENEME19' AS SOYADI,'1970-11-11' AS DTARIH
  39. UNION
  40. SELECT 20 AS ID,'AHMET20' AS ADI,'DENEME20' AS SOYADI,'1980-05-11' AS DTARIH
  41. UNION
  42. SELECT 21 AS ID,'AHMET21' AS ADI,'DENEME21' AS SOYADI,'1979-11-29' AS DTARIH
  43. UNION
  44. SELECT 22 AS ID,'AHMET22' AS ADI,'DENEME22' AS SOYADI,'1992-03-15' AS DTARIH
  45. UNION
  46. SELECT 23 AS ID,'AHMET23' AS ADI,'DENEME23' AS SOYADI,'1988-12-16' AS DTARIH
  47. UNION
  48. SELECT 24 AS ID,'AHMET24' AS ADI,'DENEME24' AS SOYADI,'1996-03-08' AS DTARIH
  49. UNION
  50. 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.

SQL
  1. 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

SQL
  1. SELECT ADI,SOYADI,DTARIH,DAY(DTARIH) AS GUN,MONTH(DTARIH) AS AY,YEAR(DTARIH) AS YIL
  2. FROM #GECICI_TABLO
  3. 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

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

Bu yazı işinize yaradı mı?

Bu konuda hesaplama aracı

İnsan Kaynakları konusundaki diğer yazılar

İnsan Kaynakları: 22 yazının tümü →

WhatsApp'ta paylaş

İlgili Yazılar