30 Aralık 2010 Perşembe

Sql'de Tarih Format Uyumsuzluğu

Sql'de en çok can sıkan konulardan biri de, datetime format uyumsuzluğu. Gün-ay-yıl mı olacak, ay-gün-yıl mı olacak, veya bize gönderilen dosyada daha farklı bir format varsa bunları nasıl istediğimiz formata çevirebiliriz gibi sorunlarla sürekli karşılaşmaktayız. Şimdi size, tüm tarih formatlarını içeren bir tablo ve bu formatların nasıl kullanılacağını gösteren sorguları göstereceğim.


SELECT convert(varchar, @tarih, 100) -- mon dd yyyy hh:mm

SELECT convert(varchar, @tarih, 101) -- mm/dd/yyyy              

SELECT convert(varchar, @tarih, 102) -- yyyy.mm.dd       

SELECT convert(varchar, @tarih, 103) -- dd/mm/yyyy

SELECT convert(varchar, @tarih, 104) -- dd.mm.yyyy

SELECT convert(varchar, @tarih, 105) -- dd-mm-yyyy

SELECT convert(varchar, @tarih, 106) -- dd mon yyyy

SELECT convert(varchar, @tarih, 107) -- mon dd, yyyy

SELECT convert(varchar, @tarih, 108) -- hh:mm:ss

SELECT convert(varchar, @tarih, 109) -- mon dd yyyy hh:mm:ss:mmm 

SELECT convert(varchar, @tarih, 110) -- mm-dd-yyyy

SELECT convert(varchar, @tarih, 111) -- yyyy/mm/dd

 

-- yyyymmdd - ISO date format - international standard  

 

SELECT convert(varchar, @tarih, 112) -- yyyymmdd

SELECT convert(varchar, @tarih, 113) -- dd mon yyyy hh:mm:ss:mmm

SELECT convert(varchar,@tarih, 114) -- hh:mm:ss:mmm(24h)

SELECT convert(varchar, @tarih, 120) -- yyyy-mm-dd hh:mm:ss(24h)

SELECT convert(varchar, @tarih, 121) -- yyyy-mm-dd hh:mm:ss.mmm

SELECT convert(varchar, @tarih, 126) -- yyyy-mm-ddThh:mm:ss.mmm

 

-- Without century (YY) date / datetime conversion 

 

SELECT convert(varchar, @tarih, 0)   -- mon dd yyyy hh:mmAM (or PM)

SELECT convert(varchar, @tarih, 1)   -- mm/dd/yy

SELECT convert(varchar, @tarih, 2)   -- yy.mm.dd          

SELECT convert(varchar, @tarih, 3)   -- dd/mm/yy

SELECT convert(varchar, @tarih, 4)   -- dd.mm.yy

SELECT convert(varchar, @tarih, 5)   -- dd-mm-yy

SELECT convert(varchar, @tarih, 6)   -- dd mon yy

SELECT convert(varchar, @tarih, 7)   -- mon dd, yy

SELECT convert(varchar, @tarih, 8)   -- hh:mm:ss

SELECT convert(varchar, @tarih, 9)   -- mon dd yyyy hh:mm:ss:mmm 

SELECT convert(varchar, @tarih, 10)  -- mm-dd-yy

SELECT convert(varchar, @tarih, 11)  -- yy/mm/dd

SELECT convert(varchar, @tarih, 12)  -- yymmdd

SELECT convert(varchar, @tarih, 13)  -- dd mon yyyy hh:mm:ss:mmm

SELECT convert(varchar, @tarih, 14)  -- hh:mm:ss:mmm(24h)

SELECT convert(varchar, @tarih, 20)  -- yyyy-mm-dd hh:mm:ss(24h)

SELECT convert(varchar, @tarih, 21)  -- yyyy-mm-dd hh:mm:ss.mmm

SELECT convert(varchar, @tarih, 22)  -- mm/dd/yy hh:mm:ss AM (or PM)

SELECT convert(varchar, @tarih, 23)  -- yyyy-mm-dd

SELECT convert(varchar, @tarih, 24)  -- hh:mm:ss

SELECT convert(varchar, @tarih, 25)  -- yyyy-mm-dd hh:mm:ss.mmm


Böylece bundan sonra sql'de alınan "The conversion of a varchar data type to a datetime data type resulted in an out-of-range value." vb. gibi hataların, üstteki tablodaki formatlara, belirtilen sorguları yazarak üstesinden gelebileceğiz.

Not: @tarih yerine siz de kendi tarih değişkeninizi giriniz.

0 yorum: