timestamp или datetime, какая разница?
Олег
При работе со временем важно понимать разницу между datetime
и timestamp
.
datetime
представляет из себя дату, как в календаре и время, которое мы видим на часах, в нашей временной зоне.
timestamp
же представляет из себя время, точно определённое для всех, ведь в мире много временных зон.
Пример:
Как много прошло времени начиная с 2013-01-10 14:45:32
? Зависит от того, в какой временной зоне вы находитесь. Если же спросить, сколько это 1492256793.49
секунд начиная с 1970-01-01 00:00:00 UTC
— мы можем точно сказать, сконвертировав timestamp
в обычное время с учётом нашей временной зоны.
Если вы пишете API, то, как правило, используют timestamp
. Иначе вы обрекаете себя на кучу гемора с разбором формата данных и с конвертацией зон.
Если же хочется хранить время в базе данных, то у вас часто под рукой ORM. Он сделает всю работу за вас и в такой ситуации часто хранят дату как datetime
. ORM сам запишет таймзону и посчитает разницу между таймзонами, если нужно посчитать какой-нибудь временной интервал, например. Но если ORM у вас нет, храните дату в timestamp
.
Попробуйте бесплатные уроки по Python
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.