LINUX.ORG.RU

MySQL & time


0

0

Посоветуйте пожалуйста, как правильно хранить информацию о времени в БД (mysql) для хранения данных например (время; счетчик) (интервалы выборки непостоянны) с целью построения графиков. Если тип datetime - то как обойтись с переходом на летнее время и обратно? Если хранить значение unixtime - то как быть с переносимостью/проблемой 2036 года?

anonymous

time - самый херовый тип данных ... с которым постоянно приходится работать.

>Если тип datetime - то как обойтись с переходом на летнее время и
>обратно?

Очень просто хранить его в базе по GMT , и при получении из базы просто перевести в нормальное время системной функцией. Если у тебя на тачке (серваке, хз где) правильно настроена тайм зона то она его переведет с учетом твоей тайм зоны.
IMHO лучше хранить по GMT или как там еще стандарт. А то если тебе прийдется сравнивать время из базы с двумя разными пунктами на земле. То в мозге перекодировать с учетом твоей тайм зоны и тайм зоны того пунка, заипеш...ся.... А так система сама перекодирует.


>Если хранить значение unixtime - то как быть с
>пеносимостью/проблемой 2036 года?
Еслы ты уверен что твой бинарник проживет 34 года, я не советчик.

Ну а если не проживет то тип тайм переведут в либах на большее количество бит (ну там еще кое где что поправят в системе). Переведут в районе 2020 года. За 10 лет точно все обновят либы.
И через 20 лет с гиком достаточно будет перекомпилять твой исходник. И все будет работать если ты не преобразовывал тип time через заднее место в твоей проге...

anonymous
()
Ответ на: комментарий от anonymous

PS: в таблицах mysql есть тип данных DATE
вот в этом типе и храни.

Мозги всякими юникстаймами не забивай. Но помни time самый херовый тип данных ))

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.