MySQL’de tarihleri dönüştürmek için kullanılır. DATE_FORMAT() fonksiyonu PHP fonksiyonuna benzer şekilde çalışır, ancak farklı biçimlendirme kodları kullanır. MySQL’deki tarih ve saatler ISO 8601 biçimi kullanılarak işlenir. ISO 8601′de tarihlerin, yıl önce olacak şekilde girilmesi gerekir. YYYY-AA-GG SS:DD:SS Örnek 2005′in Haziran ayı için 2005-06-01 olarak girilmelidir. Bu ISO 8601 tarih formatını, GG.AA.YYYY şekline getirmek için bu fonksiyondan yararlanabilirsiniz

Parametreler:

%M : Ay, tüm metin (January…December)
%W : Gün adı, tüm metin. (Sunday…Saturday)
%D : Ayın günü, sayısal, metin sonekiyle birlikte (örneğin, 1st)
%Y : Yıl, sayısal, 4-basamaklı
%y : Yıl, sayısal, 2-basamaklı
%a : Gün adı, 3-karakter (Sun…Sat)
%d : Ayın günü, sayısal, başta sıfır var.. (00…31)
%e : Ayın günü, sayısal, başta sıfır yok…(0…31)
%m : Ay, sayısal, başta sıfır var.. (00…12)
%c : Ay, sayısal, başta sıfır yok… (0…12)
%b : Ay, metin, 3-karakter(Jan…Dec)
%j : Yılın günü, sayısal.. 
%H : Saat, 24-saat, başta sıfır var 
%k : Saat, 24-saat, başta sıfır yok 
%h ya da %I : Saat, 12-saat, başta sıfır var 
%l : Saat, 12-saat, başta sıfır yok.. 
%i : Dakika, sayısal, başta sıfır var. 
%r : Zaman, 12-saat (hh:mm:ss [AM|PM]) 
%T : Zaman, 24-saat (hh:mm:ss) 
%S ya da %s : Saniye, sayısal, başta sıfır var… (00…59)
%p : AM veya PM 
%w : Haftanın günü, sayısal, 0′dan (Sunday) 6′ya (Saturday) kadar…

Örnek: MySQL Tarih Biçimini Şekillendirme
/*
Dosyalar veritabanındaki uyeler Tablosunu Kullandığınızı Varsayarsak
+--------+---------------------+
| uyeadi | kayittarihi |
+--------+---------------------+
| ali | 2005-05-14 15:20:00 |
+--------+---------------------+
| veli | 2005-06-14 15:20:00 |
+--------+---------------------+
*/
$sorgu = mysql_query("SELECT DATE_FORMAT(kayittarihi, '%d.%m.%Y %H:%i:%s') AS kayittarihi FROM uyeler",$baglanti); //MySQL Tarih Alanı Biçimlendiriliyor
while($veri = mysql_fetch_array($sorgu)
{
echo $veri["kayittarihi"];
}

//Sonuç
//14.05.2005 15:20:00
//14.06.2005 15:20:00
?>
Örnek: UNIXTIME Alanını Düzenleme
/*
Dosyalar Klasöründeki uyeler Tablosunu Kullandığınızı Varsayarsak...
+--------+---------------------+
| uyeadi | kayit_tarihi |
+--------+---------------------+
| ali | 1116076800 |
+--------+---------------------+
*/
require("ayar.php");
require("baglan.php");
$sorgu = mysql_query("SELECT DATE_FORMAT(FROM_UNIXTIME(kayit_tarihi), '%d.%m.%Y %H:%i:%s') AS kayit_tarihi FROM uyeler"); //Unixtime Zaman Biçimi Düzenleniyor
$veri = mysql_fetch_array($sorgu)

echo $veri["kayit_tarihi"];

//Sonuç
//14.05.2005 15:20:00
?>

DATE_SUB

Bu fonksiyon tarih hesaplama işlemleri için kullanılır. Bu fonksiyonla aynı çalışan DATE_ADD() ADDDATE() SUBDATE() Fonksiyonları vardır. ADDDATE() ve SUBDATE(), DATE_ADD() ve DATE_SUB() fonksiyonlarının eşanlamlılarıdır.
Burada kullanılan tarih, DATETIME (tarihzaman) ya da DATE (tarih) değeridir. Bunlar başlangıç değerini belirler. Yazım Formatı INTERVAL değerini belirler. Bu değer başlangıç değerine eklenir veya çıkarılır.

Kullanımı:
DATE_SUB(date,INTERVAL expr type)
DATE_SUB(tarih, INTERVAL yazım formatı tip)

Bu fonksiyonla aynı çalışan diğer fonksiyonlar
DATE_ADD (tarih, INTERVAL yazım formatı tip)
ADDDATE(tarih, INTERVAL yazım formatı tip)
SUBDATE(tarih, INTERVAL yazım formatı tip)