![]()
Tarih ve saat kavramı tüm alanlarda ve işlemlerde kullanılan ve kritik bir öneme sahip verilerdir. Bunları istenen formata çevirme yada istenen detayda kayda alma olayı da oldukça önemlidir. Bende etkili bir şekilde kullanmamızı ve yönetmemizi sağlayan methodlara bakacağım.
GEÇERLİ TARİH VE SAATİ DÖNDÜREN METHODLAR
GETDATE() : SQL Server’ın çalıştığı işletim sisteminin geçerli sistem tarihini ve saatini ‘YYYY-MM-DD HH:MM:SS.MMM’ formatında döndürür.
|
1 2 3 4 5 |
select GETDATE() —result: 2025–01–14 14:50:33.493 |
CURRENT_TIMESTAMP : Geçerli sistem tarihini ve saatini, saat dilimi kısmı olmadan döndürür. Yerel saat farklılıklarına göre ayarlama yapar.(Yaz saati uygulaması gibi)(Coordinated Universal Time) tarih ve saatini döndürür.
|
1 2 3 4 5 |
select CURRENT_TIMESTAMP —result: 2025–01–14 14:51:12.150 |
GETUTCDATE() : Geçerli sistemin UTC(Coordinated Universal Time) tarih ve saatini döndürür.
|
1 2 3 4 5 |
select GETUTCDATE() —result: 2025–01–14 11:38:36.370 |
TARİH VE SAATİ DÖNDÜREN METHODLAR
DATENAME() ve DATEPART() : Tarihin belirtilen kısmını döndürür. İki parametre alır. Yıl: yy , Ay: month, Saat: hour , Hafta: wk
|
1 2 3 4 5 6 7 |
SELECT DATENAME(yy, ‘2025/08/25’) —>result: 2025 SELECT DATENAME(month, ‘2025/08/25’) —>result: August SELECT DATENAME(hour, ‘2025/08/25 08:36’) —>result: 8 |
DAY(): Yazılan tarihten gün değerini alır.
|
1 2 3 |
SELECT DAY(‘2025/01/14’) —> result: 14 |
MONTH() : Yazılan tarihten ay değerini alır.
|
1 2 3 |
SELECT MONTH(‘2025/01/14’) —> result: 1 |
YEAR() : Yazılan tarihten yıl değerini alır.
|
1 2 3 |
SELECT YEAR(‘2025/01/14’) —> result: 2025 |
İKİ TARİH ARASINDAKİ FARKI DÖNDÜRME
DATEDIFF() : iki tarih arasındaki farkı döndürür. Üç parametre alır. İlk parametre iki tarih arasındaki farkı nasıl tutmak istediğimizi, ikinci parametreye başlangıç tarihini, üçüncü parametreye bitiş tarihini yazılır.
|
1 2 3 4 5 6 7 8 9 10 |
DATEDIFF(istenen kısım, ‘Başlangıç Tarihi’, ‘Bitiş Tarihi) select DATEDIFF(YEAR,’1988–12–20‘,’2025–01–14‘) YIL, DATEDIFF(MONTH,’1988–12–20‘,’2025–01–14‘) AY, DATEDIFF(DAY,’1988–12–20‘,’2025–01–14‘) GÜN —result: YIL: 37 AY: 433 GÜN: 13174 |
Örnek:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
DECLARE @start_dt DATETIME2= ‘2024-12-31’, @end_dt DATETIME2= ‘2025-01-01’; SELECT DATEDIFF(year, @start_dt, @end_dt) yıl, DATEDIFF(month, @start_dt, @end_dt) ay, DATEDIFF(day, @start_dt, @end_dt) gun, DATEDIFF(week, @start_dt, @end_dt) hafta, DATEDIFF(hour, @start_dt, @end_dt) saat, DATEDIFF(minute, @start_dt, @end_dt) dakika, DATEDIFF(second, @start_dt, @end_dt) saniye, DATEDIFF(millisecond, @start_dt, @end_dt) milisaniye; |

Örnek: Buda Northwind db de Siparişlerin durumu hakkında bilgi
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
SELECT OrderID, RequiredDate, ShippedDate, CASE WHEN DATEDIFF(day, RequiredDate, ShippedDate) < 0 THEN ‘Geç Kaldı’ ELSE ‘Zamanında’ END shipment FROM [Northwind].[dbo].[Orders] WHERE ShippedDate IS NOT NULL ORDER BY RequiredDate; |

TARİHLERİ DEĞİŞTİREN METHODLAR
DATEADD(): Belirtilen değere göre ekleme yapar.
|
1 2 3 4 5 |
SELECT DATEADD(day, 1, ‘2024-12-31 23:59:59’) —result: 2025–01–01 23:59:59.000 |
Örnek: Burada sipariş 2 gün sonra sevk edilecektir
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SELECT OrderID, CustomerID, OrderDate, DATEADD(day, 2, OrderDate) cal_date FROM [Northwind].[dbo].[Orders] WHERE ShippedDate IS NULL ORDER BY cal_date DESC; |

AYRI ZAMANALRI BİRLEŞTİREN METHODLAR
DATEFROMPARTS(): Yıl , Ay , Gün ü tutarak bir tarih oluşturur. Üç parametreden oluşur. İlk parametre 4 basamaklı yıl değerini, ikinci parametre 1’den 12′ye kadar ay değerini ve üçüncü parametre 1’den 31’e kadar gün değerini tutar. Herhangi bir değişken NULL ise, NULL değerini döndürür.
|
1 2 3 4 5 6 7 |
SELECT DATEFROMPARTS(2025,01,14) —> 2025–01–14 SELECT DATEFROMPARTS(2025,NULL,14) —> NULL SELECT DATEFROMPARTS(2025,01,–1) —> Cannot construct data type date, some of the arguments have values which are not valid. |
TIMEFROMPARTS(): Saat , dakika , saniye olan zamanı birleştirir. Herhangi bir değişken NULL ise, NULL değerini döndürür.
|
1 2 3 4 5 6 7 |
SELECT TIMEFROMPARTS(23, 59, 59, 0, 0) —> 23:59:59 SELECT TIMEFROMPARTS(18, 30, 15, 7, 2) —> 18:30:15.07 SELECT TIMEFROMPARTS(18, NULL, 15, 7, 2) —> NULL |
TARİH VE SAAT DEĞERLERİNİ DOĞRULAMA METHODU
ISDATE(): Değerin geçerli bir tarih yada saat olup olmadığını kontrol eder. Değer geçerli bir tarih yada saat ise 1, değilse 0 değerini döndürür.
|
1 2 3 4 5 6 7 8 9 |
SELECT ISDATE(‘2025-06-15’) —> 1 SELECT ISDATE(‘2025-13-15’) —> 0 SELECT ISDATE(‘2025-12-05 11:20:30’) —> 1 SELECT ISDATE(‘2025-12-05 11:60:30’) —> 0 |
Sağlıcakla kalın…








Bir yanıt yazın