Bu yazımızda Sql Tarih ve Zaman Fonksiyonlarının nasıl kullanılabileceği ile ilgili basit sorgu örnekleri paylaşacağım. GETDATE(), GETUTCDATE(), YEAR(), MONTH(), DAY(), DATEPART(), DATENAME(), DATEADD(), DATEDIFF() ve ISDATE() Fonksiyonlarının kullanımı ve bununla ilgili sorgu örneklerini inceleyebilirsiniz. Sorguları ticaret veritabanında bulunan musteriler tablosu üzerinden gerçekleştireceğiz. Tablo yapısı aşağıdaki resimden inceleyebilirsiniz.
Şimdi de musteri tablosunda musteriler ait ad,dtarih ve yaş bilgisini görüntüleyelim.
Bugüne ait tarihte Ay bilgisini şu şekilde elde edebiliriz.
İkinci örneğimizde ise musteri tablosunda Şubat ayında doğan müşterileri listeleyelim.
Bugüne ait gün bilgisi için aşağıdaki gibi bir sorgu yazılabilir.
Şimdi de musteri tablosunda ay ve gün bilgisini beraber kullanacağımız bir sorgu yazalım. doğum günü Mart ayının 19 u olan müşterileri listeleyelim.
param1: örneğin yıl için yy, ayın gün için d, ayın için mm, yılın günü için dy gibi kısaltmalar kullanılabilir.
Şimdi örneğimizde bu güne ait Yıl, Ay, Gün, saat, Dakika ve Saniye bilgisini DatePart Fonksiyonu kullanarak elde edelim. Resmin üzerine tıklayarak büyütebilirsiniz.
Not: Sql Server diline göre getirmektedir. Türkçe için daha önceden set language Turkish komutu çalıştırılmalıdır.
Türkçe olarak gelmesini sağlamak için
sorgusunu çalıştırabilirsiniz.
Örnek olarak bugünün tarihinden 2 gün sonraki ve 3 gün önceki tarihleri elde edelim.
Örnek olarak musteri tablosunda bulunan kisilere ait doğum tarihlerini kullanalım. Müşterilere ait doğum tarihleri üzerinden bugüne göre kaç yıl geçtiğini, kaç ay geçtiğini ve kaç gün geçtiğini gösterelim.
İlk örneğimizde şubat ayına ait 29 gün çekip çekmediği ile ilgili geriye 0 – 1 döndürelim.
Şimdide bu geriye dönen değere göre ekranda mesaj nasıl verdirebiliriz ona bakalım.

GetDate()
select getdate() sorgusu kullanarak şuan bulunduğumuz tarihi görebilirsiniz.
GETUTCDATE()
select GETUTCDATE() sorgusu ile merkezi saati elde edebilirsiniz.
YEAR(tarih)
Girilen tarih parametresindeki yılı getirir. Bu tablonuzda her hangi bir alanda bulunan tarih verisi olabilir. Örneğimizde GetDate() ile bugünün tarihinin yıl bilgisini alalım.
Şimdi de musteri tablosunda musteriler ait ad,dtarih ve yaş bilgisini görüntüleyelim.
1 2 3 | select ad,dtarih,year(getdate())-year(dtarih) as yaş from musteri |

Month(tarih)
Yukarıdaki örnekten farklı olarak tarih içindeki Ay bilgisini çekmek istediğimizde kullanabiliriz.Bugüne ait tarihte Ay bilgisini şu şekilde elde edebiliriz.
1 2 3 | select month(getdate()) |

Day(tarih)
Yıl ve Ay bilgisinde olduğu gibi kullanılır. Gün bilgisini elde etmek için kullanılır.Bugüne ait gün bilgisi için aşağıdaki gibi bir sorgu yazılabilir.
1 2 3 | select Day(Getdate()) |

DATEPART(param1,param2)
param2 ile belirtilen tarihin param1 ile belirtilen kısmını alır. Yani Gün,Ay,Yıl,Saat,Dakika,Saniye bilgilerini bu yöntemi kullanarakta elde edebiliriz.param1: örneğin yıl için yy, ayın gün için d, ayın için mm, yılın günü için dy gibi kısaltmalar kullanılabilir.
Şimdi örneğimizde bu güne ait Yıl, Ay, Gün, saat, Dakika ve Saniye bilgisini DatePart Fonksiyonu kullanarak elde edelim. Resmin üzerine tıklayarak büyütebilirsiniz.
1 2 3 4 5 6 7 8 | select datepart(YEAR,getdate()) select datepart(MONTH,getdate()) select datepart(DAY,getdate()) select datepart(HOUR,getdate()) select datepart(MINUTE,getdate()) select datepart(SECOND,getdate()) |

DATENAME(param1,param2)
param2 ile belirtilen tarihin ay yada gün biçimlerini öğrenebilirsiniz.Not: Sql Server diline göre getirmektedir. Türkçe için daha önceden set language Turkish komutu çalıştırılmalıdır.
Türkçe olarak gelmesini sağlamak için
1 2 3 | set language turkish |
DATEADD
Belirtilen değer ve parametre kadar ekleme yapar. Burada eksiltme yapmak istendiğinde negatif sayılar kullanılabilir.Örnek olarak bugünün tarihinden 2 gün sonraki ve 3 gün önceki tarihleri elde edelim.

Datediff
Bu fonksiyonu kullanarak iki tarih arasındaki farkı bulmak için kullanılabilir. Bu fonksiyon 3 parametreye ihtiyaç duyar. İlk parametre tarihin hangi kısmı, yani ay, gün, yıl bilgisi. İkinci kısım iki tarih arasında önce gelen tarih, sonraki parametre ise sonra gelen tarih olur.Örnek olarak musteri tablosunda bulunan kisilere ait doğum tarihlerini kullanalım. Müşterilere ait doğum tarihleri üzerinden bugüne göre kaç yıl geçtiğini, kaç ay geçtiğini ve kaç gün geçtiğini gösterelim.

İSDATE
Bu fonksiyon ile girilen tarihin geçerli olup olamadığı kontrol edilebilir. Geçerli bir tarih ise 1 değilse 0 bilgisi geri dönecektir.İlk örneğimizde şubat ayına ait 29 gün çekip çekmediği ile ilgili geriye 0 – 1 döndürelim.

Şimdide bu geriye dönen değere göre ekranda mesaj nasıl verdirebiliriz ona bakalım.
