Хранение даты и времени как эпохи против собственного формата даты и времени в базе данных - PullRequest
2 голосов
/ 12 апреля 2010

Для большинства моих задач мне гораздо проще работать с датой и временем в формате эпохи:

Тривиально рассчитать временной интервал или определите, произошло ли какое-либо событие до или после другого, Мне не нужно заниматься проблемами часовых поясов, если данные поступают из разных географических источников, в случае языков сценариев то, что я обычно получаю из базы данных, когда запрашиваю столбец с указанием даты и времени, - это строка, которую мне нужно проанализировать для работы с ней.

Этот список можно продолжить, но для того, чтобы мой код был переносимым, этого достаточно, чтобы отбросить родной формат даты и времени базы данных и сохранить дату и время как целое число. Что вы, ребята, думаете?

Ответы [ 3 ]

0 голосов
/ 12 апреля 2010

Я думаю, что я использую, чтобы правильно использовать объекты и методы Model в MVC, эти функции даты и времени становятся тривиальными. Я зависим от даты и времени библиотеки для расчетов. В очень редких случаях мне приходилось писать свои собственные, и на самом деле я упускал из виду тот факт, что функциональность уже была в библиотеке. Если вы используете PHP, возьмите библиотеку даты и времени из Zend Framework. Как только вы разработали свою модель, используйте ее снова. Тогда вам все равно, как дата и время хранятся в БД.

0 голосов
/ 05 марта 2011

Основная причина использования типа базы данных DATETIME заключается в том, что POSIX time_t имеет очень ограниченный диапазон; Вы не можете хранить даты после печально известного Y2038 или до 1904 года. Поскольку многие базы данных должны хранить исторические или будущие даты, существует полный диапазон и обычно переносимые DATETIME; если на самом деле времена POSIX более полезны для вас, тогда используйте их.

0 голосов
/ 12 апреля 2010

Вы должны быть в состоянии решить проблему с часовым поясом, используя время UTC. Я знаю, что C имеет функцию для преобразования времени эпох в UTC. Я не мог найти другой путь, который смущает меня.

...