Всеки един сървър за бази от данни (MySQL, PostgreSQL, Oracle, etc) има типове за дати, защото са част от SQL стандарта. Записвайки дата, винаги трябва да използваш някой от тези типове за тип на колоната. Кое точно, решаваш ти, най-общо - DATE записва година, месец и ден, а пък DATETIME записва и времето. Ако записваш само датата, няма смисъл да използваш поле, което е за дата и време.
Използването на unix timestamp (или time() в РНР), въобще не е по-удобно за изчисленя, както каза някой. Причината е, че базите данни си имат вградени функции за работа с дати (изчисления, интервали и т.н.), и точно те са удобни и павилни за употреба, включително и за сортиране. Но полето трябва да е от правилния тип, някой от типовете за дата, а не varchar или int.
Списък на date/time функциите в MySQL
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
Има налични функции, чрез които:
1. Добавяш интервал към някаква дата и получаваш нова дата. Например - коя дата ще бъде, пет дни след като е публикуван този отговор.
2. Изваждане на дати - коя дата е било три дни преди публикуването на този отговор. Или колко дни преди крайната дата на съзтезанието, е публикуван съответния отговор.
3. Разлика между две дати (подобно на точка 2). Да кажем, че имаш датата на която се е регистрирал потребител4я и датата, когато за последно се е логнал. DATEDFF() ще ти каже колко дни има между двете дати.
4. Извличане на информация от датите. Можеш да вземеш само месеца или само годината. Можеш да вземеш името на месеца. Можеш да разбереш кой ден от седмицата е 21 август 2013 (в случая - сряда).
и какво ли още не.....
Как потребителя ще вижда датата е съвсем друг въпрос. Има си функции за форматиране, включително и базата данни може да ти форматира стойността от поле от тип дата както си пожелаеш, подобно на РНР.
[sql]select title, date_format(post_date, '%d.%m%Y') as user_date from news;[/sql]