Sql Tarih-Saat İşlemleri


Twitter'da Paylaş Favorilerime Ekle

SQL Tarih ve Saat İşlemleri

Veritabanında tarih ve saat işlemleri gerçekleştirirken doğru tarih/saat formatını kullanıp kullanmadığımıza bağlı olarak hatalar ile karşılaşabiliriz.

Eğer işlem yaptığımız alan sadece tarih bilgisi içeriyorsa işimiz daha kolaydır. Ancak zaman (saat, dk, sn) bilgisi de içeriyorsa işler biraz karışabilir.

Öncelikle MySQL ve Sql Server için kullanılan tarih/saat fonksiyonlarına bir göz atalım.

MySQL Tarih/Zaman Fonksiyonları

NOW() şu anki tarih ve zaman bilgisini verir.

CURDATE() şu anki tarih bilgisini verir.

CURTIME() şu anki zaman bilgisini verir.

DATE()  Tarih kısmını verir.

EXTRACT() Tarih/zaman bilgisinin bir parçasını verir.

DATE_ADD() Belirtilen tarihe, belirtilen tarih aralığını ekler.

DATE_SUB() Belirtilen tarihten, belirtilen tarih aralığını çıkarır.

DATEDIFF() İki tarih arasındaki gün sayısını verir.

DATE_FORMAT() Tarih/zaman bilgisini istenen biçimde göstermeye yarar.

SQL Server Tarih/Zaman Fonksiyonları

GETDATE() şu anki tarih ve zaman bilgisini verir.

DATEPART() Tarih/zaman bilgisinin bir parçasını verir.

DATEADD() Belirtilen tarihe, belirtilen tarih aralığını ekler veya çıkarır.

DATEDIFF() İki tarih arasındaki zamanı verir.

CONVERT() Tarih/zaman bilgisini istenen biçimde göstermeye yarar.

SQL Tarih-Zaman Veri Türleri

Tablomuzu oluştururken kullanabileceğimiz tarih/zaman türleri de şöyledir.

MySql için:

DATE - biçim YYYY-MM-DD

DATETIME - biçim: YYYY-MM-DD HH:MI:SS

TIMESTAMP - biçim: YYYY-MM-DD HH:MI:SS

YEAR - biçim YYYY veya YY

SQL Server için:

DATE - biçim YYYY-MM-DD

DATETIME - biçim: YYYY-MM-DD HH:MI:SS

SMALLDATETIME - biçim: YYYY-MM-DD HH:MI:SS

TIMESTAMP - biçim: sayı

SQL Tarih-Zaman İşlemleri

İki tarihi karşılaştırmak çok kolaydır.

SELECT * FROM ogrenciler WHERE dgTarihi='2000-1-12'

Yukarıdaki sorgu dtTarihi alanında sadece tarih bilgisi saklanıyorsa sorunsuz çalışacaktır.

Ancak belirtilen alanda zaman bilgisi de varsa bu sorgu sonuç döndürmeyecektir. Çünkü sadece tarihe göre sorgulama yapılmıştır.

SELECT * FROM uyeler WHERE kayitTarihi='2000-1-12'

Önemli Tavsiye: Tarih ve zaman bilgisini aynı sütunda saklamak yerine iki farklı sütunda saklamak daha kullanışlı olacaktır.

sql tarih saat işlemleri, sql tarih zaman hataları, sql tarih işlemleri nasıl yapılır, mysql ve sql server tarih türleri