Merhaba Arkadaşlar,
Bu yazımda MSSQL 2012 ile birlikte gelen yeni 7 tane tarih ve saat fonksiyonundan bahsedeceğim. Bu fonksiyonlar:
- DATEFROMPARTS
- TIMEFROMPARTS
- DATETIMEFROMPARTS
- DATETIME2FROMPARTS
- SMALLDATETIMEFROMPARTS
- DATETIMEOFFSETFROMPARTS
- EOMONTH
Sırasıyla inceleyip ne işe yaradıkları görelim.
DATEFROMPARTS
MSSQL 2008 r2 de “Date” tipine dönüşüp yapmak kolay değildi bunun için aşağıdaki gibi bir kullanım kullanmamız gerekiyordu:
DECLARE @Yil NVARCHAR(4) =’2012′
DECLARE @Ay NVARCHAR(2)=’03’
DECLARE @Gun NVARCHAR(2) = ’03’SELECT CONVERT(date,@Yil + ‘-‘ + @Ay + ‘-‘ + @Gun)
–SONUÇ => 2012-03-03
Söz dizimi => DATEFROMPARTS (Yil, Ay, Gun)
MSSQL 2012’de ise:
DECLARE @Yil INT =’2012′
DECLARE @Ay INT=’03’
DECLARE @Gun INT= ’03’SELECT DATEFROMPARTS(@Yil,@Ay,@Gun)
–SONUÇ => 2012-03-03
TIMEFROMPARTS
Geriye Time tipinde değer döndüren fonksiyondur.
Söz dizimi => TIMEFROMPARTS(Saat, Dakika, Saniye, Kusurat, Hassaslik)
Buradaki hassaslık, 0 ile 7 arasında değer alabilir. Örneğin 7 verdiyseniz küsuratı 100 nanasaniye cinsinden, 3 verdiyseniz bir milisaniye cinsinden verir.
Kullanımı:
SELECT TIMEFROMPARTS(23,55,56,4,7) — => 23:55:56.0000004
SELECT TIMEFROMPARTS(23,55,56,0,0) — => 23:55:56
SELECT TIMEFROMPARTS(23,55,56,30,3) — => 23:55:56.030
DATETIMEFROMPARTS
Geriye DateTime tipinde değer döndüren fonksiyondur.
Söz dizimi=> DATETIMEFROMPARTS (Yil, Ay, Gun, Saat, Dakika, Saniye, Milisaniye)
Kullanımı:
SELECT DATETIMEFROMPARTS(2012,3,3,01,25,50,500) — => 2012-03-03 01:25:50.500
DATETIME2FROMPARTS
Geriye DateTime2 tipinde değer döndüren fonksiyondur. DATEFROMPARTS ve TIMEFROMPARTS fonksiyonlarının birleşimi bir fonksiyon diyebiliriz.
Söz dizimi => DATETIME2FROMPARTS (Yil, Ay, Gun, Saat, Dakika, Saniye, Kusurat, Hassaslik)
Kullanımı:
SELECT DATETIME2FROMPARTS(2012,03,03,01,36,45,50,5)– => 2012-03-03 01:36:45.00050
SELECT DATETIME2FROMPARTS(2012,03,03,01,43,45,5,1) — => 2012-03-03 01:43:45.5
SMALLDATETIMEFROMPARTS
Geriye SmallDateTime tipinde değer döndüren fonksiyondur.
Söz dizimi => SMALLDATETIMEFROMPARTS (Yil, Ay, Gun, Saat, Dakika)
Kullanımı:
SELECT SMALLDATETIMEFROMPARTS(2012,03,03,01,51) — => 2012-03-03 01:51:00
DATETIMEOFFSETFROMPARTS
Geriye DatetimeOffSet tipinde değer döndüren fonksiyondur. OFFSET, kullandığınız zaman dilimin saat ve dakika olarak + veya – değeridir.
Söz dizimi=> DATETIMEOFFSETFROMPARTS (Yil, Ay, Gun, Saat, Dakika, Saniye, Kusurat, OFFSET Saat, OFFSET Dakika, Hassaslik)
Kullanımı:
SELECT DATETIMEOFFSETFROMPARTS(2012,03,03,13,30,30,500,5,30,3) — => 2012-03-03 13:30:30.500 +05:30
EOMONTH
Geriye DateTime tipinde ayın son gününü döndüren fonksiyondur.
Söz dizimi=> EOMONTH (BasglangicTarihi,EklenecekAySayisi)
Kullanımı:
DECLARE @Bugun DATETIME = GETDATE()
SELECT EOMONTH(@Bugun) — 2012-03-31 => 2012-03-31
SELECT EOMONTH(@Bugun,-1) — Önceki ayın son günü => 2012-02-29
SELECT EOMONTH(@Bugun,0) — Bu ayın son günü => 2012-03-31
SELECT EOMONTH(@Bugun,1) — Gelecek ayın son günü => 2012-04-30
Bir sonraki yazımda yine yeni bir özellikten bahsedeceğim.
İyi çalışmalar