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.