Beyza'nın Blogu

T- SQL’de Date Fonksiyonlar

Veri tabanlarında tarih ve saat tipinde birçok alan bulunur. Date fonksiyonlarını veritabanlarında kullanılan tarih ve saat fonksiyonları olarak niteleyebiliriz. SQL ve T-SQL ile ilgilenen kullanıcılar için önemlilerdir.

• CURRENT_TIMESTAMP      • CURRENT_TIMEZONE      • CURRENT_TIMEZONE_ID      • DATEADD • DATEDIFF      • DATEDIFF_BIG                                              • DATEFROMPARTS • DATENAME • DATEPART      • DATETIME2FROMPARTS      • DATETIMEFROMPARTS      • DATETIMEOFFSETFROMPARTS      • DAY  • EOMONTH      • GETDATE      • GETUTCDATE      • ISDATE      • MONTH      • SMALLDATETIME FROMPARTS      • SWITCHOFFSET      • SYSDATETIME            • SYSDATETIMEOFFSET      • SYSUTCDATETIME      • TIMEFROMPARTS     • TODATETIMEOFFSET      • YEAR

Anlık olarak Tarih-Saat bilgisini getiren fonksiyonlar

-> GETDATE(): En çok kullanılan fonksiyondur. DATETIME tipinde fonksiyon döndürür.
     SYSDATETIME(): Hassas ölçülmüş tarih-zaman bilgisi verir (yıl,ay,gün,saat,dakika,saniye+milisaniye bilgisini verir.)
     SYSDATETIMEOFFSET(): Hassas ölçülüş tarih-zaman bilgisine ek olarak timezone bilgisini de verir.
     SYSUTCDATETIME(): Timezone değerini Greenwich’e göre getirir.
     CURRENT_TIMSTAMP(): GATEDATE ile aynı işlevi gerçekleştirir.
     GETUTCDATETIME(): Tarih-zaman bilgisini daha az hassasiyet ile getirir.

1
DATEPART Fonksiyonu

Bir tarih-saat verisinin içerisinde belli bölümleri parçalayıp almak için kullanılan fonksiyondur.

SELECT
DATEPART(YEAR,GETDATE()) YIL,
DATEPART(MONTH,GETDATE()) AY,
DATEPART(DAY,GETDATE()) GÜN,
DATEPART(HOUR,GETDATE()) SAAT,
DATEPART(MINUTE,GETDATE()) DAKİKA,
DATEPART(SECOND,GETDATE()) SANİYE

2

-> SET DATEFIRST 1       // Programı İngiliz standartlarına kurduğumuz için hesaplamaların Türkiye standartlarına göre sonuçlanmasını belirttik.
     SELECT
     DATEPART(YEAR,’2024-04-05 19:20:48:323′) YIL,
     DATEPART(MONTH,’2024-04-05 19:20:48:323′) AY,
     DATEPART(DAY,’2024-04-05 19:20:48:323′) GÜN,
     DATEPART(HOUR,’2024-04-05 19:20:48:323′) SAAT,
     DATEPART(MINUTE,’2024-04-05 19:20:48:323′) DAKİKA,
     DATEPART(SECOND,’2024-04-05 19:20:48:323′) SANİYE,
     DATEPART(MILLISECOND,’2024-04-05 19:20:48:323′) MİLİSANİYE,
     DATEPART(DAYOFYEAR,’2024-04-05 19:20:48:323′) KACINCI_GUN,
     DATEPART(DW,’2024-04-05 19:20:48:323′) HANGI_GUN,         // Eğer SET DATEFIRST 1 demeseydik İngiliz standartlarına göre haftanın ilk günü pazar olduğu için bize göre yanlış bir sonuç ile karşılaşacaktık.
     DATEPART(WEEK,’2024-04-05 19:20:48:323′) KACINCI_HAFTA

2.1
DATENAME Fonksiyonu

DATETIME ile benzerdir. Veriyi string tipinde almamıza yarar.

-> SET DATEFIRST 1                         // Haftanın ilk gününü pazartesi olarak ayarladık.
     SET LANGUAGE Turkish          // Verilerin Türkçe diline çevrilmesini sağladık.

     SELECT
     DATENAME(YEAR,’2024-04-05 19:20:48:323′) YIL,
     DATENAME(MONTH,’2024-04-05 19:20:48:323′) AY,
     DATENAME(DAY,’2024-04-05 19:20:48:323′) GÜN,
     DATENAME(HOUR,’2024-04-05 19:20:48:323′) SAAT,
     DATENAME(MINUTE,’2024-04-05 19:20:48:323′) DAKİKA,
     DATENAME(SECOND,’2024-04-05 19:20:48:323′) SANİYE,
     DATENAME(MILLISECOND,’2024-04-05 19:20:48:323′) MİLİSANİYE,
     DATENAME(DAYOFYEAR,’2024-04-05 19:20:48:323′) KACINCI_GUN,
     DATENAME(DW,’2024-04-05 19:20:48:323′) HANGI_GUN,
     DATENAME(WEEK,’2024-04-05 19:20:48:323′) KACINCI_HAFTA

3
DATE-TIMEFROMPARTS Fonksiyonları

DateFromPartsTimeFromPartsDateTimeFromParts olmak üzere 3 adet fonksiyon vardır. Aldıkları parametrelere göre sonuç döndürürler. Genellikle optik formlarda kullanılırlar.

SELECT DATEFROMPARTS(2022,7,28)                               // 2022-07-28

SELECT DATETIMEFROMPARTS(1999,5,17,12,23,46,15)     // 1999-05-17 12:23:46.017

SELECT TIMEFROMPARTS(16,45,56,223,3)                        // 16:45:56.223

4
DAY, MONTH, YEAR Fonksiyonları

DATE ya da DATETIME fonksiyonlarından gün, ay, yıl bilgilerini daha kısa bir yol kullanarak çekmemize yarar.

5
DATEDIFF Fonksiyonu

İki tarih arasındaki fonksiyonu almak istediğimizde kullanırız. Yaş, çalışma süresi vb. yerlerde kullanabiliriz. Farkı hangi şekilde göstermek istiyorsak (yıl,ay,gün,dakika,… ) o parametreyi fonksiyona veririz.

SELECT
DATEDIFF(YEAR,’1980-06-10′,’2008-12-11′),                   // 28
DATEDIFF(MONTH,’1980-06-10′,’2008-12-11′),                // 342
DATEDIFF(WEEK,’1980-06-10′,’2008-12-11′),                    // 1487
DATEDIFF(DAY,’1980-06-10′,’2008-12-11′),                      // 10411
DATEDIFF(MINUTE,’1980-06-10′,’2008-12-11′)                 // 14991840

6
DATEADD Fonksiyonu

Bir tarihe bir değer ekler ya da çıkartır. 3 parametre alır -> tarih-ay/yıl/gün/saat/dakika…-  eklenecek ya da çıkartılacak birim sayısı

SELECT
DATEADD(YEAR,10,’2012-07-09′),                             // 2022-09-07 00:00:00.000
DATEADD(MONTH,5,’2012-07-09′),                          // 2013-02-07 00:00:00.000
DATEADD(DAY,12,’2012-07-09′),                               // 2012-09-19 00:00:00.000
DATEADD(MINUTE,15,’2002-11-10 15:30:00′),            // 2002-10-11 15:45:00.000
DATEADD(YEAR,-20,’2000-15-04′) yıl_çıkart         // 1980-04-15 00:00:00.000

SELECT DATEADD(MINUTE,20,DATEADD(HOUR,9,’2002-26-11′))            // 2002-11-26 09:20:00.000

7
ISDATE Fonksiyonu

İfadenin tarih formatına uygun olup olmadığını döndüren bir fonksiyondur. Dil seçimine göre yıl-ay-gün sıralaması değişebilir. Bozuk verileri kontrol eder.

SELECT ISDATE (‘2023-07-02’)     // 1
SELECT ISDATE(‘20221306’)           // 0

Scroll to Top