Telefon
Telegram
WhatsApp
İnstagram
SQL Tarih Fonksiyonlarının Kullanımı

SQL Tarih Fonksiyonlarının Kullanımı

SQL Tarih Fonksiyonlarının Kullanımı

SQL Tarih Fonksiyonlarının Kullanımı

Veritabanları ile ilgili en çok sıkıntı yaşanan bölüm tarih alanlarının biçimi, sorgulanması, kayıt eklenmesi gibi durumlardır. Uzun süre yaptığınız kodlar çalışabilir. Ancak veritabanında meydana gelebilecek bir sürüm yükseltmesi veya veritabanı türü (SQL Server, MySQL vb.) değişikliği ciddi sorunlara yol açabilir.


MySQL Tarih Fonksiyonları

MySQL 'de en çok kullanılan ve en önemli tarih fonksiyonları şöyledir:

Fonksiyon Adı Açıklaması Örnek
NOW()  O anki tarih ve saat bilgisini beraber verir Create Table Personel
(id int, Ad varchar(10),
kayit_tar datetime Not Null DEFAULT NOW())
Bu yapıda yeni bir kayıt eklenirken kayit_tar alanına tarih ve saat otomatik eklenir.
CURDATE()  O anki tarih verir Create Table Personel
(id int, Ad varchar(10),
kayit_tar datetime Not Null DEFAULT CURDATE())
Bu yapıda yeni bir kayıt eklenirken kayit_tar alanına günün tarihi otomatik  eklenir.
CURTIME()  O anki saati verir Create Table Personel
(id int, Ad varchar(10),
kayit_tar datetime Not Null DEFAULT CURTIME())
Bu yapıda yeni bir kayıt eklenirken kayit_tar alanına o anki saat otomatik  eklenir.
DATE()  Veritabanında tarih ve saat bilgisini tutan alandan tarihi seçip verir. Select Adi, DATE(kayit_tar) From Personel
Kayit_tar alanındaki tarih ve saat bilgisinden sadece tarih kısmını alır.
EXTRACT()  İlgili alandaki tarih / saat verisinden istenilen bölümü alır.
 Alınabilecek bölümlerden bazıları: YEAR, MONTH, DAY, HOUR, MINUTE, QUARTER
Select Adi, EXTRACT(MONTH from kayit_tar) From Personel
Kayit_tar alanında ki verinin rakamsal olarak hangi aya ait olduğunu verir.
DATE_ADD()  INTERVAL ile belirtilen değer ve parametre kadar ekleme yapar. Buradaki işlem veritabanında herhangi bir güncelleme işlemi yapmaz. Sadece sorgulama sonucunda elde edilen değere ekleme yapıp ekrana yazar. Select Adi, DATE_ADD(kayit_tar, INTERVAL 30 DAY) AS tarih From Personel
Bu örnekte kayıt tarihi üzerine 30 GÜN ekler.
DATE_SUBTRACTS ()  INTERVAL ile belirtilen değer ve parametre kadar çıkarma yapar. Buradaki işlem veritabanında herhangi bir güncelleme işlemi yapmaz. Sadece sorgulama sonucunda elde edilen değeden çıkarma yapıp ekrana yazar. Select Adi, DATE_SUBTRACTS (kayit_tar, INTERVAL 30 DAY) AS tarih From Personel
Bu örnekte kayıt tarihden 30 GÜN önceki tarihi verir.
DATE_DIFF() İki tarih arasındaki gün farkını verir. SELECT DATEDIFF(ayrilma_tar,kayit_tar) AS calisma_gunu From Personel
Bu örnekte personelin çalıştığı gün sayısını alabiliriz. Birinci tarihten ikincisi çıkarılır. Eğer ikinci tarih daha büyük ise negatif sonuç çıkar.

MySQL Tablolarında tarih alanına kayıt biçimleri aşağıdaki gibidir

- DATE biçimi için kayıt formatı: YYYY-MM-DD
- DATETIME biçimi için kayıt formatı: YYYY-MM-DD HH:MI:SS
TIMESTAMP biçimi için kayıt formatı: YYYY-MM-DD HH:MI:SS
- YEAR biçimi için kayıt formatı: YYYY veya YY

SQL Server Tarih Fonksiyonları

SQL Server 'da en çok kullanılan ve en önemli tarih fonksiyonları şöyledir:

Fonksiyon Adı Açıklaması Örnek
GETDATE()  O anki tarih ve saat bilgisini beraber verir Create Table Personel
(id int, Ad varchar(10),
kayit_tar datetime Not Null DEFAULT GETDATE())
Bu yapıda yeni bir kayıt eklenirken kayit_tar alanına tarih ve saat otomatik eklenir.
DATEPART()  İlgili alandaki tarih / saat verisinden istenilen bölümü alır.
 Alınabilecek bölümlerden bazıları: yy(YEAR), mm(MONTH), dd(DAY), hh(HOUR), mi(MINUTE)
Select Adi, DATEPART(yy, kayit_tar) From Personel
Kayit_tar alanında ki verinin rakamsal olarak hangi yıla ait olduğunu verir.
DATEADD()  Belirtilen değer ve parametre kadar ekleme yapar. Buradaki işlem veritabanında herhangi bir güncelleme işlemi yapmaz. Sadece sorgulama sonucunda elde edilen değere ekleme yapıp ekrana yazar. Select Adi, DATE_ADD(day,30, kayit_tar) AS tarih From Personel
Bu örnekte kayıt tarihi üzerine 30 GÜN ekler.
DATEDIFF() Belirtilen parametre kadar iki tarih arasındaki farkı verir. SELECT DATEDIFF(month,ayrilma_tar,kayit_tar) AS calisilan_ay From Personel
Bu örnekte personelin çalıştığı ay sayısını alabiliriz. Birinci tarihten ikincisi çıkarılır. Eğer ikinci tarih daha büyük ise negatif sonuç çıkar.

SQL Server Tablolarında tarih alanına kayıt biçimleri aşağıdaki gibidir

- DATE biçimi için kayıt formatı: YYYY-MM-DD
- DATETIME biçimi için kayıt formatı: YYYY-MM-DD HH:MI:SS
- SMALLDATETIME biçimi için kayıt formatı: YYYY-MM-DD HH:MI:SS
- TIMESTAMP biçimi için kayıt formatı: Benzersiz bir numara ataması yapar.

 

Paylaş: