SQL Server

SQL Tarih Convert İşlemleri -SQL Tarih Sorguları

Bu makalede, SQL sorguları yazmada kullanılacak çeşitli SQL Convert Date biçimlerini inceleyeceğiz.

SQL’de tarih türü verileriyle çalışmamız gerekiyor. SQL Server geliştiricileri için zaman zaman uğraşmak karmaşık bir şey olabilir. Sütun zaman damgalı bir Ürün tablonuz olduğunu varsayalım. Her müşteri siparişi için bir zaman damgası oluşturur. Bununla ilgili aşağıdaki sorunlarla karşılaşabilirsiniz

Uygulama farklı bir tarih biçiminde veri eklemeye çalıştığından Ürün tablosuna veri ekleyemezsiniz
Diyelim ki YYYY-MM-DD hh:mm: ss biçimindeki bir tabloda verileriniz var. Günlük Satış raporunuz var ve bu nedenle tarihe göre veri grubu istiyorsunuz. Raporda YYYY-MM-DD biçiminde verilerin olmasını istiyorsunuz
İhtiyacımıza göre tarih formatımız olmadığında bu tür senaryolarla karşılaşıyoruz. Her gereksinimi karşılamak için tablo özelliklerini değiştiremeyiz. Bu durumda, gerekli tarih biçimini vermek için SQL Server’daki yerleşik işlevleri kullanmamız gerekir.

Tarih ve Zaman Türleri

SQL Server’da aşağıdaki SQL tarih ve zaman veri tiplerine sahibiz.

Date typeFormat
Timehh:mm:ss[.nnnnnnn]
DateYYYY-MM-DD
SmallDateTimeYYYY-MM-DD hh:mm:ss
DateTimeYYYY-MM-DD hh:mm:ss[.nnn]
DateTime2YYYY-MM-DD hh:mm:ss[.nnnnnnn]
DateTimeOffsetYYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm

 

SQL Server’da, sunucu tarihini ve biçimini çeşitli biçimlerde almak için SQL GETDATE() ve GetUTCDate() gibi yerleşik işlevleri kullanarız.

SYSDATETIME(): Sunucunun tarih ve saatini döndürmek için
SYSDATETIMEOffset(): UTC ofseti ile birlikte sunucunun tarih ve saatini döndürür
GETUTCDATE(): Tarih ve GMT (Greenwich Ortalama Saati) saatini döndürür
GETDATE(): Sunucu tarih ve saatini döndürür

İlgili biçimlerde çıktı almak için aşağıdaki sorguları yürütün.

SQL Convert Date Formatı

Daha önce vurgulandığı gibi, bir tarihi gereksinimlerimize göre farklı biçimlerde biçimlendirmemiz gerekebilir. DateTime’ı çeşitli biçimlerde biçimlendirmek için SQL Server’daki SQL CONVERT() işlevini kullanabiliriz.

SQL CONVERT () işlevi için sözdizimi aşağıdaki gibidir.

Data_Type: Veri türünü length(uzunluk) ile birlikte tanımlamamız gerekir. Tarih fonksiyonunda varchar (uzunluk) veri türlerini kullanıyoruz
Date: Dönüştürmek istediğimiz tarihi belirtmemiz gerekiyor
DateFormatCode: Tarihi uygun biçimde dönüştürmek için DateFormatCode’u belirtmemiz gerekir. Gelecek adımda bununla ilgili daha fazla şey bulacağız. SQL dönüştürme tarih işlevlerini kullanarak çeşitli tarih biçimlerini inceleyelim.

İlk olarak, aşağıdaki sorgu ile SQL GETDATE() işlevini kullanarak geçerli DateTime tutmak için bir değişken bildirir.

Aşağıdaki tabloda çeşitli tarih biçimlerini görebiliriz. Bu tabloyu, Tarih Saati sütunları biçiminde başvuru amacıyla kullanışlı tutabilirsiniz.

SQL SorgusuDate ve Time Formatı  / ÇIKTI
MM/DD/YY
06/22/20
YY.MM.DD
20.06.22
DD/MM/YY
22/06/20
DD.MM.YY
22.06.20
MMM DD,YY
Jun 22, 20
hh:mm:ss
01:48:55
MMM DD YYYY hh:mm:ss:mmm(AM/PM)
Jun 22 2020 1:49:55:623AM
MMM DD YYYY hh:mm:ss:mmm(AM/PM)
Jun 22 2020 1:49:55:623AM

 

Yukarıdaki örneklerde seçmece olarak bir kaç tanesini verdim. Aşağıdaki kodlardan yazabileceğiniz tüm formatlar sunuyorum.

şeklinde yazabilirseniz.

Date format seçeneğiSQL convert date çıktı
0Dec 30 2006 12:38AM
112/30/06
206.12.30
330/12/2006
430.12.06
530/12/2006
630-Dec-06
7Dec 30, 06
800:38:54
9Dec 30 2006 12:38:54:840AM
1012-30-06
1106/12/1930
1261230
1330 Dec 2006 00:38:54:840
1400:38:54:840
2030/12/2006 00:38
2138:54.8
2212/30/06 12:38:54 AM
2330/12/2006
2400:38:54
2538:54.8
262006-30-12 00:38:54.840
2712-30-2006 00:38:54.840
2812-2006-30 00:38:54.840
2938:54.8
3030-2006-12 00:38:54.840
312006-30-12
3212-30-2006
3312-2006-30
3430/12/2006
3530-2006-12
100Dec 30 2006 12:38AM
10112/30/2006
1022006.12.30
10330/12/2006
10430.12.2006
10530/12/2006
10630-Dec-06
107Dec 30, 2006
10800:38:54
109Dec 30 2006 12:38:54:840AM
11012-30-2006
11130/12/2006
11220061230
11330 Dec 2006 00:38:54:840
11400:38:54:840
12030/12/2006 00:38
12138:54.8
1262006-12-30T00:38:54.840
1272006-12-30T00:38:54.840
13010 ?? ????? 1427 12:38:54:840A
13110/12/1427 12:38:54:840AM

DATEADD Fonksiyonu

Tarihimize belirli bir süre eklemek için SQL DATEADD işlevini kullanabiliriz. Mevcut tarihe 1 ay eklememiz gerektiğini varsayalım. Bu görevi yerine getirmek için SQL DATEADD işlevini kullanabiliriz.

SQL DATEADD işlevinin sözdizimi aşağıdaki gibidir

interval: Belirtilen tarihte eklenmesi gereken bir aralık belirleyebiliriz. Yıl, ay, gün, hafta, saat, dakika vb. değerler alabiliriz.

number: Eklenecek aralığın sayısını belirtir. Örneğin, aralığı Ay ve Sayı olarak 2 olarak belirlediysek, tarihe 2 ayın eklenmesi gerektiği anlamına gelir.

Aşağıdaki sorguda, geçerli tarihe 2 ay eklemek istiyoruz.

Yukarıdaki sorgular çalıştırıldığında aşağıdaki gibi çıktılar oluşacaktır.

MevcutTarih
2020-06-22 01:59:04.643


YeniTarih
2020-08-22 01:59:04.643

Benzer şekilde, aşağıdaki sorguyu kullanarak geçerli tarihe 1 yıl ekleyelim.

İstediğiniz DateTime formatlarında çıktı almak için SQL DATEADD ve CONVERT işlevlerini birleştirebiliriz. Bir önceki örnekte varsayalım; MMM GG, YYYY biçiminde bir tarih biçimi istiyoruz. Bu formatta çıktı almak için 107 format kodunu kullanabiliriz.

İşte bir tane örnek;

Yukarıdaki sorgunun çıktısı aşağıdaki gibi olacaktır.

yenitarihdegisentarih
2021-06-22 02:03:08.867Jun 22, 2021

Sonuç

Bu makalede, çeşitli SQL dönüştürme tarih biçimlerini inceledik. Bu makaleyi, tüm tarih biçimlerine referans almak ve sorgularınızda kullanmak için kullanabilirsiniz.

Yorum bırak