MsSql Tarih-Zaman Fonksiyonları

MsSql Tarih-Zaman Fonksiyonları

Merhaba Arkadaşlar,
Bu makalemizde MsSql?de Tarih ve Zaman Fonksiyonlarının bir kısmını göreceğiz.Göreceğimiz yapıları aşağıdaki şekilde listeledikten sonra,hemen bilgi vermeye başlayacağım:
- GETDATE
- DATEADD
- DATEDIFF
- DATEPART
Yukardaki yapıların isimlerinden de aşağı yukarı ne işe yaradıklarını anlayabiliriz.Ancak ne işe yaradığı kadar nasıl kullanılacağı da çok önemlidir.Bu yüzden bu yapıların kullanımlarını kuralına gore göreceğiz.Evet listemizin başı ile başlayalım:
GETDATE :
Bu yapı sistemin o andaki tarihini verir.
Select GETDATE() --> Sonuç : 2011-11-11 10:13:47.957
DATEADD :
Bu yapı,belli bir tarihin üzerine bir değer ekleyerek yeni bir tarih elde etmemize yarar.Ekleme işlemini Yıl,Ay,Gün,Saat,Dakika vs şeklinde yapabiliriz.Bu yapının kullandığı 3 argüman vardır.
İlki tarihin hangi değer üzerinden arttılıp azalacağı.Yani gün olarak mı ay olarak yıl,saat?
Tabi bunu kullanmanın belli başlı kuralları var.Her değer için bir kısaltma kullanılır.Bu kısaltmalar ve değerleri aşağıdaki gibidir:
- YIL = yy,yyyy
- AY = mm,m
- HAFTA = wk,ww
- GüN = dd,d
- SAAT = hh
- DAKiKA = mi,n
- SANiYE = ss,s
Yukarda verdiklerim dışında kullanılabilecek yapılar da var ancak dahasını gereksiz bulduğum için eklemiyorum.
Gelelim ikinci argümana ki bu da değiştirilecek miktarı belirler.Bu değer negatif vey a pozitif olabilir;ancak sayısal bir değer olması gerekir.5,-12,21?gibi?
Gelelim son argümanımıza,bud a değişmesini istediğimiz tarihten başkası değildir.Yapı hakkındaki bu kadar bilgi yeterli sanırım gelelim örneklendirmeye.
SELECT GETDATE() --> Sonuç : 2011-11-11 10:15:40.800
SELECT DATEADD(dd,4,getdate()) -->Sonuç : 2011-11-15 10:15:40.800
Gördüğünüz üzere şimdiki tarihten 4 gün sonrasını getirdi.Bunu aynı şekilde tablodaki kayıtlara da uygulayabiliriz.Örnek:
Select DATEADD(dd,7,kayitTarihi) From Ogrenciler
DATEDIFF :
Verilen iki tarih arasındaki farkı istenilen bazda (gün,ay,yıl vs) verir.Yukarda tarihler için verdiğim kısaltmalar tüm tarih fonksiyonlarında geçerli olduğu için tekrar tekrar yazmıyorum.Bu fonksiyonun da 3 adet argümanı vardır.
İlki aynı şekilde farkın hangi türden çekileceğini belirtiyor.
İkinci argüman ve üçüncü argüman farkı alınacak tarihlerdir.Küçük(eski tarih) ilk argümana yazılır.
Bu güzel bilgileri bir de örnek ile taçlandıralım.
SELECT DATEDIFF(hh,getdate(), DATEADD(dd,4,getdate())) --> Sonuç : 96
Gördüğünüz üzere bugün ile 4 gün sonrası arasındaki farkı dakika olarak çektim.
DATEPART :
Bu yapımızda iki argüman ile kullanılır.İlki çekilecek olan tarih bölümü ikincisi de tarih değeri olmak üzere.Örnek :
SELECT DATEPART(hh,getdate()) --> Sonuç : 10
SELECT DATEPART(wk,getdate()) --> Sonuç : 46
SELECT DATEPART(yy,getdate()) --> Sonuç : 2011
Evet arkadaşlar bunların dışında da tarihler ile ilgili yapılar var;ancak ben burda en önemli olduğunu düşündüklerimi açıklamaya çalıştım.Her zamanki gibi temel düzeyde bilgi verdim,bunları geliştirmek,pekiştirmek sizlere kalmış durumda.

İyi çalışmalar?

  • Etiketler;
Murat Karakoyun
İstanbul Üniversitesi Bilgisayar Mühendisliği bölümü mezunu. Şu anda özel bir firmanın Bilgi İşlem ve Yazılım Geliştirme departmanında çalışıyor. Asp.Net (CSharp), MsSQL, HTML, CSS, Photoshop biliyor.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git