T-SQL de Tarih islemleri için kullandigimi birçok fonksiyon vardir. Bunlardan en çok kullanilanlar bir liste halinde verdim. Tarih üzerinde islemler yapabilmek için bu kullanisli fonksiyonlari bilmemiz gerekiyor. Bu fonksiyonlardan bazilari tarihden tarih çikarmak, tarih içinden gün ay yil bulmak, Belirli bir tarihe gün, ay yil ekleyerek olusan tarihi bulmak gibi siralanabilir.
Bu konuda çok fazla bir sey anlatmaya gerek duymuyorum. Asagidaki liste incelenecek olursa konunun anlasilacagini düsünüyorum.
SELECT CURRENT_TIMESTAMP — Sonuç : 2009-07-20 10:39:15.097
SELECT DATEADD(day,2,‘2009-07-20’) — Sonuç : 2009-07-22 00:00:00.000
SELECT DATEADD(month,2,‘2009-07-20’) — Sonuç : 2009-09-20 00:00:00.000
SELECT DATEDIFF(day,‘2009-07-20’,‘2015-02-09’) — Sonuç : 2030 (Gün olarak aldik)
SELECT DATENAME(month, ‘2009-07-20’) — Sonuç : July
SELECT DATENAME(weekday, ‘2009-07-20’) — Sonuç : Monday
SELECT DATEPART(month, ‘2009-07-20’) — Sonuç : 7
–Suanki Zaman ve Tarihi verir SELECT GETDATE() — Sonuç : 2009-07-20 11:52:32.893
— Londra – Greenwich Saati SELECT GETUTCDATE() — Sonuç : 2009-07-20 08:52:44.693
–Girilen string degerin tarih olup olmadigini belirler. 1 ise tarih 0 ise degil. SELECT ISDATE(‘2009-07-20’) — Sonuç : 1 SELECT ISDATE(‘2014-18-09’) — Sonuç : 0
–girilen Tarihin gün bilgisini verir. SELECT DAY(‘2009-07-20’) — Sonuç : 20 –girilen Tarihin ay bilgisini verir. SELECT MONTH(‘2009-07-20’) — Sonuç : 7 –Girilen Tarihin yil bilgisini verir. SELECT YEAR(‘2009-07-20’) — Sonuç : 2009
–Sistem Zamanini verir. SELECT SYSDATETIME() — Sonuç : 2009-07-20 11:53:15.7138432
–Sistem Zamanini Greenwiche göre verir. SELECT SYSUTCDATETIME() — Sonuç : 2009-07-20 08:53:25.9958432
— DATEADD: Suank, Tarihe 7 Gün ekleyelim. — Bunun için 1 hafta eklemek veya 7 gün eklemek yeterlidir. SELECT DATEADD(DD, 7, GETDATE()) SELECT DATEADD(WW, 1, GETDATE())
— Suanki Tarihe göre Ayin hangi günündeyiz. SELECT DAY(GETDATE())
— Suanki Ayin Ilk günü SELECT DATEADD(DD,-(DAY(GETDATE())-1),CONVERT(VARCHAR,GETDATE(),112))
— Suanki Ayin son günü SELECT DATEADD(DD,-(DAY(DATEADD(MM,1,GETDATE()))),DATEADD(MM,1, CONVERT(VARCHAR,GETDATE(),112)))
— DATEDIFF: Ocak 1 2007 den bugune kadar kaç gün geçti SELECT DATEDIFF(DD,‘20070101’,GETDATE())
— DATENAME: Suanki Ay SELECT DATENAME(MM, GETDATE())
— Hangi Aydayiz. SELECT MONTH(GETDATE())
— Hangi Yildayiz SELECT YEAR(CURRENT_TIMESTAMP)
|
yani veritabaninda hiç bir timestamp olmadanmi ? Eger tablolarinda böyle bir kayit yoksa transaction loglardan bu bilgiyi nasil aliriz bir arastiralim. Bulursam yazarim burda.
kolay gelsin bise sorucam veri tabaninda son 3 günün verisini dinamik olarak nasil çekeblirim