avatar

MySQL Veri Tabanlarında Tarih Biçimlendirme
MySQL'de tarih bilgisini istediğiniz formatta alabilirsiniz.

20/07/2014
Hakan Özakar

Veri tabanımızdan tarih verisini çekmek genelde keyifsiz bir iştir. Arayüzde görüntülemek istediğimiz tarih bilgisi genellikle veri tabanımızdaki standart tarih formatından çok farklıdır.

Veri tabanında tarih standart olarak "Y-m-d H:i:s" şeklinde tutulur. Yani: Yıl-Ay-Gün Saat-Dakika-Saniye. Bu sorunu çözmek için genellikle veri tabanından tarihi olduğu gibi alır, PHP ile (ya da hangi server-side dili kullanıyorsak onunla) tarih format fonksiyonundan geçirir, Türkçeleştiririz. Halbuki SQL'de de tarih formatını düzenleyebileceğimiz bir fonksiyon var...

 

-- Önce üzerinde çalışabileceğimiz bir tarih değişkeni yaratalım.
-- Elbette veri tabanınızdan bilgi çekerken böyle bir değişkene
-- ihtiyaç duymayacaksınız...
SET @tarih:='2014-07-20 19:23:47';

-- Şimdi MySQL e tarih verisini Türkçe istediğimizi söyleyelim
SET lc_time_names='tr_TR'; 

-- Tarihimizi Yıl-Ay-Gün (sayısal) olarak isteyelim
SELECT date_format(@tarih,'%Y-%m-%d') AS tarih;

-- Sonuç: 2014-07-20

-- Şöyle bir şey isteyelim:
-- Gün(Sayısal) Ay_adı Yıl, Gün_adı
SELECT date_format(@tarih,'%d %M %Y, %W') AS tarih;

-- Sonuç: 20 Temmuz 2014, Pazar

-- ya da Gün(Sayısal) Kısa_ay_adı Yıl, Kısa_gün_adı
SELECT date_format(@tarih,'%d %b %Y, %a') AS tarih;

-- Sonuç: 20 Tem 2014, Paz

-- veya Gün(Sayısal) Ay_adı, Zaman(hh:mm:ss)
SELECT date_format(@tarih,'%d %M, %T') AS tarih;

-- Sonuç: 20 Temmuz, 19:23:47

İşte bu kadar kolay.

 

date_format fonksiyonu ile kullanabileceğiniz değerler: 

DeğerAçıklama
%a Kısa gün adı (Paz..Cmt)
%b Kısa ay adı (Oca..Ara)
%c Ay, nümerik (1..12)
%D Ayın kaçıncı günü(İngilizce son ek)
%d Ayın kaçıncı günü (01..31)
%e Ayın kaçıncı günü (01..31)
%f Mikrosaniye (000000..999999)
%H Saat (00..23)
%h Saat (01..12)
%I Saat (01..12)
%i Dakika, nümerik (00..59)
%j Yılın kaçıncı günü (001..366)
%k Saat (0..23)
%l Saat (1..12)
%M Ay adı (Ocak..Aralık)
%m Ay, nümerik (01..12)
%p AM - PM
%r Zaman, 12 saatlik format (hh:mm:ss AM - PM)
%S Saniye (00..59)
%s Saniye (00..59)
%T Zaman, 24 saatlik format (hh:mm:ss)
%U Yılın kaçıncı haftası (00..53), (Haftanın ilk günü Pazar kabul edilir)
%u Yılın kaçıncı haftası (00..53), (Haftanın ilk günü Pazartesi kabul edilir)
%V Yılın kaçıncı haftası (00..53), (Haftanın ilk günü Pazar kabul edilir) (%X ile birlikte kullanılır)
%v Yılın kaçıncı haftası (00..53), (Haftanın ilk günü Pazartesi kabul edilir) (%x ile birlikte kullanılır)
%W Gün adı (Pazar..Cumartesi)
%w Gün, nümerik (0=Pazar..6=C.tesi)
%X Pazar haftanın ilk günü olmak kaydıyla haftanın yılı, nümerik, 4 haneli (%V ile kullanılır)
%x P.tesi haftanın ilk günü olmak kaydıyla haftanın yılı, nümerik, 4 haneli (%v ile kullanılır)
%Y Yıl, nümerik, 4 haneli
%y Yıl, nümerik, 2 haneli
%% "%" işareti

 

Yorumlar Yorum Yap