SQL Tarih Convert İşlemleri dersim ile SQL eğitim setime devam ediyorum. Bir süredir SQL eğitim setime ders ekleyemiyordum. Bugün bir kaç ders eklemeyi planlıyorum.
SQL Tarih Convert İşlemleri
SQL tarih işlemleri bize hep sıkıntı çıkartır. Tarih ayraçlarından tutunda yazım formatına kadar birçok farklılık var.
Örnek olarak Türkiyede tarih gg.aa.yyyy olarak yazılır. Önce gün sonra ay ve yıl olacak şekilde ve aralarda nokta ayracı ile. Ama Amerika durum farklıdır. En büyük fark onlar aa.gg.yyyy yani Önce ay sonra gün ve yıl formatında kullanırlar.
C# ile parametre veya model kullanmadan yapılan insertlerde 02.04.2019 şeklinde tarih kaydedemezsiniz. Gönderdiğiniz tarih formatı ayraç olmadan yyyyaagg şeklinde yanı yıl ay gün formatında olması gerekiyor. Ama sql management studio da tabloyu açıp bir tarih alanına tarih gireceğiniz zaman tam tersi oluyor. Oraya aktif tarih formatı ile yazılması gerekiyor. SQL den bir tarih alanı okuduğunuzda da “2011-08-28” formatında okunuyor.
Yani anlayacağınız bir çok sıkıntı yaşayabiliyoruz. Bu dersimizde SQL den okuma kısmındaki formatlama işlemlerine bakacağız.
Elbette bu convertleme işlemlerini select sorgusunda kolon olarak çektiğimiz gibi where kısmında şart vereceğimiz tarih kolonları üzerinde de kullanabiliyoruz.
Tarih convert kullanım şekli şöyledir.
SELECT CONVERT ( Donusecek Tip (DateTime, VarChar gibi), Donusmesi Istenen Veri, Tip Kodu)
SQL Tarih / Zaman Convert Modelleri
Tarih Convert Modelleri
SELECT convert(varchar, getdate(), 0)
Format: mon dd yyyy hh:mm (AM or PM)
Çıktı: Apr 2 2019 3:56PM
SELECT convert(varchar, getdate(), 1)
Format: mm/dd/yy
Çıktı: 04/02/19
SELECT convert(varchar, getdate(), 2)
Format: yy.mm.dd
Çıktı: 19.04.02
SELECT convert(varchar, getdate(), 3)
Format: dd/mm/yy
Çıktı: 02/04/19
SELECT convert(varchar, getdate(), 4)
Format: dd.mm.yy
Çıktı: 02.04.19
SELECT convert(varchar, getdate(), 5)
Format: dd-mm-yy
Çıktı: 02-04-19
SELECT convert(varchar, getdate(), 6)
Format: dd mon yy
Çıktı: 02 Apr 19
SELECT convert(varchar, getdate(), 7)
Format: mon dd, yy
Çıktı: Apr 02, 19
SELECT convert(varchar, getdate(), 100)
Format: mon dd yyyy hh:mm (AM or PM)
Çıktı: Apr 2 2019 4:09PM
SELECT convert(varchar, getdate(), 101)
Format: mm/dd/yyyy
Çıktı: 04/02/2019
SELECT convert(varchar, getdate(), 102)
Format: yyyy.mm.dd
Çıktı: 2019.04.02
SELECT convert(varchar, getdate(), 103)
Format: dd/mm/yyyy
Çıktı: 02/04/2019
Bu Türkiye için geçerli olan Tarih Formatıdır.
SELECT convert(varchar, getdate(), 104)
Format: dd.mm.yyyy
Çıktı: 00.04.2019
SELECT convert(varchar, getdate(), 105)
Format: dd-mm-yyyy
Çıktı: 02-04-2019
SELECT convert(varchar, getdate(), 106)
Format: dd mon yyyy
Çıktı: 02 Apr 2019
SELECT convert(varchar, getdate(), 107)
Format: mon dd, yyyy
Çıktı: Apr 02, 2019
SELECT convert(varchar, getdate(), 110)
Format: mm-dd-yyyy
Çıktı: 04-02-2019
SELECT convert(varchar, getdate(), 111)
Format: yyyy/mm/dd — yyyymmdd – ISO Tarih Formatı – Uluslararası Standart – Herhangi bir dil ayarında çalışır.
Çıktı: 2019/04/02
SELECT convert(varchar, getdate(), 112)
Format: yyyymmdd
Çıktı: 20190402
SELECT convert(varchar, getdate(), 10)
Format: mm-dd-yy
Çıktı: 04-02-19
SELECT convert(varchar, getdate(), 11)
Format: yy/mm/dd
Çıktı: 19/04/02
SELECT convert(varchar, getdate(), 12)
Format: yymmdd
Çıktı: 190402
SELECT convert(varchar, getdate(), 23)
Format: yyyy-mm-dd
Çıktı: 2019-04-02
Zaman Convert Modelleri
SELECT convert(varchar, getdate(), 108)
Format: hh:mm:ss
Çıktı: 15:49:24
SELECT convert(varchar, getdate(), 114)
Format: hh:mm:ss:mmm(24h)
Çıktı: 15:54:05:693
SELECT convert(varchar, getdate(), 8)
Format: hh:mm:ss
Çıktı: 16:02:32
SELECT convert(varchar, getdate(), 14)
Format: hh:mm:ss:mmm(24h)
Çıktı: 16:05:34:363
SELECT convert(varchar, getdate(), 24)
Format: hh:mm:ss
Çıktı: 16:08:11
Tarih ve Zaman Convert Modelleri
SELECT convert(varchar, getdate(), 109)
Format: mon dd yyyy hh:mm:ss:mmm (AM or PM)
Çıktı: Apr 2 2019 3:50:13:540PM
SELECT convert(varchar, getdate(), 113)
Format: dd mon yyyy hh:mm:ss:mmm
Çıktı: 02 Apr 2019 15:53:14:053
SELECT convert(varchar, getdate(), 120)
Format: yyyy-mm-dd hh:mm:ss(24h)
Çıktı: 2019-04-02 15:54:23
SELECT convert(varchar, getdate(), 121)
Format: yyyy-mm-dd hh:mm:ss.mmm
Çıktı: 2019-04-02 15:55:15.630
SELECT convert(varchar, getdate(), 126)
Format: yyyy-mm-ddThh:mm:ss.mmm
Çıktı: 2019-04-02T15:55:44.147
SELECT convert(varchar, getdate(), 9)
Format: mon dd yyyy hh:mm:ss:mmm (AM or PM)
Çıktı: Apr 2 2019 4:03:02:100PM
SELECT convert(varchar, getdate(), 13)
Format: dd mon yyyy hh:mm:ss:mmm
Çıktı: 02 Apr 2019 16:05:07:547
SELECT convert(varchar, getdate(), 20)
Format: yyyy-mm-dd hh:mm:ss(24h)
Çıktı: 2019-04-02 16:06:14
SELECT convert(varchar, getdate(), 21)
Format: yyyy-mm-dd hh:mm:ss.mmm
Çıktı: 2019-04-02 16:06:43.970
SELECT convert(varchar, getdate(), 22)
Format: mm/dd/yy hh:mm:ss (AM or PM)
Çıktı: 04/02/19 4:06:59 PM
SELECT convert(varchar, getdate(), 25)
Format: yyyy-mm-dd hh:mm:ss.mmm
Çıktı: 2019-04-02 16:08:28.353
NOT: Tek hane ve iki haneli olan convert modelleri istisnalar olarak geçiyor. Bu modellerde genelde tarihlerdeki yıllar iki hane olarak gösteriliyor.
SQL Tarih Convert İşlemleri dersimizde bu kadardı arkadaşlar. Diğer derslerimizde görüşmek üzere,
Microsoft SQL Server & T-SQL Eğitim Seti ders listesi için tıklayınız.
Sağlıcakla ve Takipte Kalın.
hocam bunu C# da yapılan bir programla sql’e tarih kaydetme kodlarını yazsanız çok daha iyi olur. teşekkürler…
Aşağıdaki şekilde yapabilirsiniz. Basit bir örnek vermeye çalıştım…
DateTime Kayit_Tarihi = DateTime.Now;
//…
insert into TABLO
(
Kayit_Tarih
,Kaydeden
, …
)
Values
(
convert(varchar, ‘”+ Kayit_Tarihi +”‘ , 104)
,0
, …
)