pek çok yöntem denedim ve sonunda karar kıldığım her türlü tarih verisini unix timestamp ile integer field olarak saklamak.
"INSERT INTO
table (name,phone,address,date)
VALUES ('ali','123','turkey','1335474100')"
gibi... date sütunu int(10) olacak. php'de unix timestamp'i time() fonksiyonu ile alıp direk o şekilde veritabanına kaydediyorsun. kullanıcının girişi söz konusu ise "strtotime" fonksiyonu ile unix ts'e çeviriyorsun. tarih gösterirken de "date('d/m/Y H:i:s',$ut)" işini görüyor.
avantajları:
- integer rahatlığı. mesela son bir günde kaydedilenleri getimek için sana tek lazım olan:
$busaat = time() - ( 60 * 60 * 24 )
"SELECT * FROM table WHERE date>$busaat"
ya da herhangi bir aralığı getirmek için:
"SELECT * FROM table WHERE date>$busaat AND date<$osaat"
yeniden eskiye sıralamak için:
"SELECT * FROM table ORDER BY date DESC"
- milyonlarca satır ve bir sürü tarih sütunu söz konusu ise belli bir alan tasarruffu ve performans avantajı olur.
0