Sql de 1 yıl içerisindeki tüm ayların son günlerini alma ile alakalı örnek sql sorgusunu makale devamında bulabilirsiniz. Aslında internette bununla ilgili bulabileceğiniz onlarca kaynak ve her bir kaynağın önerdiği farklı alternatif yöntemler vardır. Bu da benim ihtiyacım için yazmış olduğum sql kodudur olurda birilerinin işine yarar diye çerezlik bir makale olarak paylaşıyorum.
Sql de Tüm Ayların Son Günlerini Alma
Alttaki sql kodunda yapılmak istenen oldukça basit @TABLE türünde bir değişken tanımlıyoruz. Sonrasında While ile her bir ay için toplamda 12 defa’lık döngü kuruyoruz. Her bir ay için yapılan işlem aslında şu mevcut ayın bir sonraki ayının 1.gününe geçiş yapmak ve günden -1 çıkarıyoruz. Böylelikle istediğimiz ayın en son gününü elde etmiş oluyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | DECLARE @Months TABLE( Date DATETIME, Year INT, Month INT, LastDay INT ) DECLARE @cnt INT = 1, @Date DATETIME; WHILE @cnt <= 12 BEGIN SELECT @Date = DATEADD(DAY, -1, CONVERT(DATETIME, CONVERT(NVARCHAR(500), YEAR(GETDATE()) + IIF(@cnt = 12, 1, 0)) + '.' + CONVERT(NVARCHAR(2), IIF( @cnt = 12, 1, @cnt + 1)) +'.1')) INSERT INTO @Months(Date, Year, Month, LastDay) VALUES(@Date, YEAR(@Date), MONTH(@Date), DAY(@Date)) SET @cnt = @cnt + 1; END SELECT * FROM @Months |
Sonuç
Alttaki görselden görebileceğiniz üzere toplamda 12 satırlık ve her bir ay için son kolon olan LastDay kolonunda ayın son gününü yani ilgili ayın kaç çektiğini veriyoruz.
✍ Lütfen olumlu-olumsuz tüm görüşlerinizi bana yorum yada mail yolu ile iletmeyi ihmal etmeyin.
🔗 Sosyal medya kanallarından makaleyi paylaşarak destek olursanız çok sevinirim.
👋 Bir sonraki makalede görüşmek dileğiyle.
Hocam hep aynı ay geliyor
Sorguyu kontrol ettiğimde bir problem göremedim. Hatta Sql Server çıktısına ait bir görselle güncelledim makaleyi. Kontrol edebilirsiniz.
Malesef hep aynı ay geliyor evet, arkadaş haklı
Merhaba,
Hangi veritabanından deniyorsunuz ve sürümü nedir? Ben Sql Server 2019 sürümünde denediğimde ayları alıyorum. Hatta alttaki linke tıklarsanız sonucu görebilirsiniz.
https://dbfiddle.uk/?rdbms=sqlserver_2019&fiddle=2cc2110e01d0aed5ff5e94a0045ec3da
Hocam buna yıl parametresi versek mesela 2025 onları nasıl getiririz