MSSQL 2012 ile Gelen Yeni Tarih ve Zaman Fonksiyonları (DATEFROMPARTS, TIMEFROMPARTS, DATETIMEFROMPARTS, DATETIME2FROMPARTS, SMALLDATETIMEFROMPARTS, DATETIMEOFFSETFROMPARTS, EOMONTH)


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

, , , , , ,

  1. MSSQL 2012 ile Gelen 2 Yeni Mantıksal Fonksiyon: CHOOSE ve IIF « Mahmut Can Sözeri

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s