İlginizi Çekebilir
  1. Ana Sayfa
  2. SQL

SQL DateTime Convert ve Datetime Veri Tipleri

SQL DateTime Convert ve Datetime Veri Tipleri
+ - 0

SQL DateTime Convert, Convert ve Datetime Veri Tipleri yazım ile sql eğitim setime devam ediyorum. Bu dersimde sql’de tarih formatları ve convert etme işlemlerine bakacağız.

SQL DateTime Convert, Convert ve Datetime Veri Tipleri

SQL’de tarih formatları her zaman bize sıkıntılar çıkartmıştır. Çünkü çok fazla tarih formatı bulunmaktadır. Örnek vermemiz gerekirse 2019’un 9. ayının 8. günü dediğimizde; Türkiye’de bunu 08.09.2019 yani gün ay yıl olarak yazarız ama amerikada bu 09.08.2019 yani ay gün yıldır. Bunun haricinde ayraç olarak nokta kullandık ama bu ayraçları ( – ) yada ( / ) şeklinde kullanımları da vardır. Sadece bunlarda değil 8 Eyl 2019 şeklinde kullanım şekillerinden tutunda saat bilgilerini içeren formatları da vardır. Yani bir hayli miktarda tarih formatı vardır.

SQL Tarih Veri Tipleri (Date/Time Datatypes)

Veri Tipi

Özelliği

Çıktısı

time

Sadece saati hh:mm:ss[.nnnnnnn] şeklinde tutar. 00:00:00.0000000 ile 23:59:59.9999999 arası değer alır. 12:35:29. 1234567
date 1 Ocak 0001 – 31 Aralık 9999. Sadece tarih içerir, saati saklamaz. 2007-05-08
smalldatetime 1 Ocak 1900 – 6 Haziran 2079. 1 dakikalık doğruluk hassasiyeti vardır. 2007-05-08 12:35:00
datetime 1 Ocak 1753 – 31 Aralık 9999. 3.33 milisaniye doğruluk hassasiyeti vardır. 2007-05-08 12:35:29.123
datetime2 datetime göre daha hassas şekilde YYYY-MM-DD hh:mm:ss[.nnnnnnn] tarih tutar. saniye bölümünün ondalık kısmında 7 basamağa kadar değer tutabilir. 2007-05-08
12:35:29. 1234567
datetimeoffset Kullanımı ve tarih aralığı datetime2 ile aynıdır. Ülkelere göre değişen zaman farkını da tutmamıza olanak sağlar. YYYY-MM-DD hh:mm:ss[. nnnnnnn] [{+-}hh:mm] şeklinde tarihi tutar. 2007-05-08 12:35:29.1234567 +12:15

Yukarıdaki tabloda gördüğünüz gibi sadece tarih belirtmek için bile 6 farklı veri tipi bulunuyor.

Sql Tarih Convert (SQL DateTime Convert)

Aşağıda tüm convert modellerini görebilirsiniz.

SELECT CONVERT ( Donusecek Tip (DateTime, VarChar gibi)Donusmesi Istenen VeriTip 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(varchar, getdate(), 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)

Bunlar Convert işlemi kullanılarak yapılan modellerdi.

 

Tarih Veri Tipi Dönüşümleri

Şimdi Cast işlemi ile yapılan convert modellerini görelim. Buna aslında veri tipi dönüşümü diyebiliriz.

Select Cast(dönüşecek veri (nvarchar(*))  as dönüşecek_tip) as Alias

-- DateTimeOffset'den Time Dönüş.
-- Sonuç: 12:35:29.1234567
SELECT CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'   

-- DateTimeOffset'den Date Dönüş.
-- Sonuç: 2007-05-08
SELECT CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'   

-- DateTime'dan SmallDateTime Dönüş.
-- Sonuç: 2007-05-08 12:35:00
SELECT CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS 'smalldatetime'

-- DateTime'dan DateTime Dönüş.
-- Sonuç: 2007-05-08 12:35:29.123
SELECT CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'   

-- DateTimeOffset'den DateTime2 Dönüş.
-- Sonuç: 2007-05-08 12:35:29.1234567
SELECT CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS 'datetime2'

-- DateTimeOffset'den DateTime2 Dönüş.
-- Sonuç: 2007-05-08 12:35:29.1234567
SELECT CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS 'datetimeoffset'      

-- Date'den DateTime Dönüş.
-- Sonuç: 2007-05-08 00:00:00.000
SELECT CAST('2007-05-08' AS datetime) AS 'datetime'   

-- Date'den SmallDateTime Dönüş.
-- Sonuç: 2007-05-08 00:00:00
SELECT CAST('2007-05-08' AS smalldatetime) AS 'smalldatetime'

-- Date'den DateTimeOffset Dönüş.
-- Sonuç: 2007-05-08 00:00:00.0000000 +00:00
SELECT CAST('2007-05-08' AS datetimeoffset) AS 'datetimeoffset'

SQL Tarih Formatları, Convert ve Datetime Veri Tipler bu kadar 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.

Buradan C# Eğitim Setimde yayınladığım Github projeme ulaşabilirsiniz.

Sağlıcakla ve Takipte Kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)