Обратимся к документации (для примера я взял mysql) http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_current-timestamp -> http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_now
> Returns the current date and time as a value in 'YYYY-MM-DD HH:MM:SS' or YYYYMMDDHHMMSS.uuuuuu format, depending on whether the function is used in a string or numeric context
Таким образом мы получаем текущую дату, а не просто time(), ведь иначе придется использовать что-нибудь вроде     CLocale::getInstance('ru')->dateFormatter->formatDateTime(time()) 
Почему лучше использовать тип поля DATETIME? По нескольким причинам. Во-первых, он визуально читабельный. Не сосчитать сколько раз приходилось из дампа одной строчки с датой TIMESTAMP переводить с помощью онлайн конвертера дату в обычную дату. Во-вторых, по нему можно делать выборки типа between DATE1 and DATE2 в нужном формате(полезно при написании экстеншенов.
Наконец, дата храниться на сервере и при выводе при нормально настроенном соединении приводиться к текущей временной зоне автоматически базой данных. К примеру, для mysql в секции настройки базы данных, если указать в initSQL что-нибудь вроде 'SET time_zone = 'America/Los_Angeles';', то все даты будут автоматически корректироваться под эту таймзону из UTC(и обратно).