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ı
İçindekiler
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
- 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.
SQL
- 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
- 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
SQL
- SELECT ADI,SOYADI,DTARIH,DAY(DTARIH) AS GUN,MONTH(DTARIH) AS AY,YEAR(DTARIH) AS YIL
- FROM #GECICI_TABLO
- WHERE MONTH(DTARIH)=MONTH(GETDATE())
Teşekkürler, geri bildiriminiz alındı.
Bu konuda hesaplama aracı: Kıdem ve İhbar Tazminatı · Maaş Hesapla · Yıllık İzin Formu
Bu konuda hesaplama aracı: Kıdem ve İhbar Tazminatı · Maaş Hesapla · Yıllık İzin Formu