Sql Tarih Sorgusu ve Datetime Convert Format

SQL sorgularında, tarih (datetime) sorguları her zaman sıkıntılı olur. Çünkü tarih formatı bir çok değişik formlarda sunulmaktadır. Örneğin: iki bin yılının, birinci ayının yirmisi dediğimizde; bizler 20.01.2000 olarak algılarken. Amerika gibi ülkeler 01.20.2000 olarak algılarlar. Daha teknik bir örnek verecek olursak SQL veri tabanınızda tarih alanınız gg.aa.yyyy şekilde ki gibi noktasal ayraçla ayarlanmışken program tarafında tarihi gg/aa/yyyy şeklinde slaç ayracı ile aldığımız durumlar oluşuyor. Bu gibi durumlarda, SQL tarih sorgusu üzerinde, tip dönüşümü (datetime convert) işlemleri gerçekleştirmemiz gerekmektedir. Bu nedenle bu yazımda sizlere SQL tarih sorgusunda tip dönüşümlerinden yani DateTime Convert işleminden kısaca bahsedeceğim.

*Not: “SQL Tarih Formatı Kullanımı, Convert Etme ve Datetime Veri Tipleri” ile ilgili asagıda ki linkte bulunan yeni makalemi de incelemenizi tavsiye ederim.

SQL Tarihsel Veri Tipleri ve SQL DateTime Tip Dönüşümleri

http://alkanfatih.com/sql-tarih-formati-kullanimi-convert-etme-ve-datetime-veri-tipleri/

Çıkış Noktam: Bir program geliştirmem sırasında, “Select * From tablo_adı” dediğim zaman tarihle ilgili kolonundan gelen veri “2011-08-28” olarak geliyordu bende C# tarafında ise sorgulama işlemini “28.08.2011” olarak göndermek istiyordum yani sql veri tabanında ki yıl ay gün formatında ki verimi, gün ay yıl formatı olarak değiştirmek istiyorum. Bunun için yapmam gereken. Aşağıdaki şekilde convert işlemini kullanmaktı.

SELECT KargoID,KargoAlici,KargoNo FROM tbl_Kargo

WHERE KargoCikisTarih >= Convert(datetime,'28.11.2011', 104)

Sql Datetime Convert Modelleri

SELECT CONVERT ( Donusecek Tip (DateTime, VarChar gibi), Donusmesi Istenen Veri, Tip Kodu)

--Format: mon dd yyyy hh:mmAM (or PM)
--Çıktı: Dec 7 2018 4:09PM
SELECT convert(varchar, getdate(), 100)  

--Format: mm/dd/yyyy
--Çıktı: 12/07/2018
SELECT convert(varchar, getdate(), 101)

--Format: yyyy.mm.dd
--Çıktı: 2018.12.07
SELECT convert(varchar, getdate(), 102)

--Format: dd/mm/yyyy
--Çıktı: 07/12/2018
SELECT convert(varchar, getdate(), 103)

--Format: dd.mm.yyyy
--Çıktı: 07.12.2018
SELECT convert(varchar, getdate(), 104) 

--Format: dd-mm-yyyy
--Çıktı: 07-12-2018
SELECT convert(varchar, getdate(), 105)

--Format: dd mon yyyy
--Çıktı: 07 Dec 2018
SELECT convert(varchar, getdate(), 106)

--Format: mon dd, yyyy
--Çıktı: Dec 07, 2018
SELECT convert(varchar, getdate(), 107)

--Format: hh:mm:ss
--Çıktı: 15:49:24
SELECT convert(varchar, getdate(), 108)

--Format: mon dd yyyy hh:mm:ss:mmmAM (or PM)
--Çıktı: Dec 7 2018 3:50:13:540PM
SELECT convert(varchar, getdate(), 109) 

--Format: mm-dd-yyyy
--Çıktı: 12-07-2018
SELECT convert(varchar, getdate(), 110)

--Format: yyyy/mm/dd -- yyyymmdd - ISO date format - international standard - works with any language setting
--Çıktı: 2018/12/07
SELECT convert(varchar, getdate(), 111)

--Format: yyyymmdd
--Çıktı: 20181207
SELECT convert(varchar, getdate(), 112)

--Format: dd mon yyyy hh:mm:ss:mmm
--Çıktı: 07 Dec 2018 15:53:14:053
SELECT convert(varchar, getdate(), 113)

--Format: hh:mm:ss:mmm(24h)
--Çıktı: 15:54:05:693
SELECT convert(varchar, getdate(), 114)

--Format: yyyy-mm-dd hh:mm:ss(24h)
--Çıktı: 2018-12-07 15:54:23
SELECT convert(varchar, getdate(), 120)

--Format: yyyy-mm-dd hh:mm:ss.mmm
--Çıktı: 2018-12-07 15:55:15.630
SELECT convert(varchar, getdate(), 121)

--Format: yyyy-mm-ddThh:mm:ss.mmm
--Çıktı: 2018-12-07T15:55:44.147
SELECT convert(varchar, getdate(), 126)

--Without century (YY) date / datetime conversion - there are exceptions!

--Format: mon dd yyyy hh:mmAM (or PM)
--Çıktı: Dec 7 2018 3:56PM
SELECT convert(varchar, getdate(), 0)

--Format: mm/dd/yy
--Çıktı: 12/07/18
SELECT convert(varchar, getdate(), 1) --Format: yy.mm.dd --Çıktı: 18.12.07
SELECT convert(varchargetdate(), 2) --Format: dd/mm/yy --Çıktı: 07/12/18 SELECT convert(varchar, getdate(), 3) --Format: dd.mm.yy --Çıktı: 07.12.18
SELECT 
convert(varchar, getdate(), 4)   --Format: dd-mm-yy --Çıktı: 07-12-18 SELECT convert(varchar, getdate(), 5) --Format: dd mon yy --Çıktı: 07 Dec 18
SELECT 
convert(varchar, getdate(), 6)   --Format: mon dd, yy --Çıktı: Dec 07, 18 SELECT convert(varchar, getdate(), 7) --Format: hh:mm:ss --Çıktı: 16:02:32 SELECT convert(varchar, getdate(), 8) --Format: mon dd yyyy hh:mm:ss:mmmAM (or PM) --Çıktı: Dec 7 2018 4:03:02:100PM SELECT convert(varchar, getdate(), 9) --Format: mm-dd-yy --Çıktı: 12-07-18 SELECT convert(varchar, getdate(), 10) --Format: yy/mm/dd --Çıktı: 18/12/07
SELECT 
convert(varchar, getdate(), 11) --Format: yymmdd --Çıktı: 181207 SELECT convert(varchar, getdate(), 12) --Format: dd mon yyyy hh:mm:ss:mmm --Çıktı: 07 Dec 2018 16:05:07:547 SELECT convert(varchar, getdate(), 13) --Format: hh:mm:ss:mmm(24h) --Çıktı: 16:05:34:363 SELECT convert(varchar, getdate(), 14) --Format: yyyy-mm-dd hh:mm:ss(24h) --Çıktı: 2018-12-07 16:06:14
SELECT 
convert(varchar, getdate(), 20)  --Format: yyyy-mm-dd hh:mm:ss.mmm --Çıktı: 2018-12-07 16:06:43.970 SELECT convert(varchar, getdate(), 21) --Format: mm/dd/yy hh:mm:ss AM (or PM) --Çıktı: 12/07/18 4:06:59 PM SELECT convert(varchar, getdate(), 22) --Format: yyyy-mm-dd --Çıktı: 2018-12-07 SELECT convert(varchar, getdate(), 23) --Format: hh:mm:ss --Çıktı: 16:08:11 SELECT convert(varchar, getdate(), 24) --Format: yyyy-mm-dd hh:mm:ss.mmm --Çıktı: 2018-12-07 16:08:28.353 SELECT convert(varchar, getdate(), 25)

One comment

  1. select top 1 tarih = convert(varchar(20),Tarih,106) , sum(cogul) grupla
    from Sayac
    group by convert(varchar(20),Tarih,106)
    order by grupla desc

Bir Cevap Yazın