@den4eg11

Использовать INT для хранения времени?

Как я вычитал, первый столбец timestamp обновляется автоматически при изменениях.
У меня есть задача - записывать время последнего захода пользователя(даже когда изменений нет), записать время регистрации.
Удобнее всего мне иметь данные в формате unix-времени, формат DATETIME по этой причине не хочу использовать.
Что и как использовать? Судя по публикации на хабре, многие не одобряют использование INT вместо форматов времени.
Но мне кажется, в моём случае с инт будет проще.
  • Вопрос задан
  • 442 просмотра
Решения вопроса 3
gibson_dev
@gibson_dev
Ну не знаю кто не одобряет, я всю свою жизнь храню дату в unix time stamp в int в бд, это гораздо удобнее ведь ты хранишь время и дату в том часовом поясе в котором хочешь и в любой момент можешь привести к другому поясу и формату. И при этом системные настройки не особо на это влияют.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Согласно документации, для того, чтобы отменить автоматическое изменение первого поля TIMESTAMP достаточно при определении таблицы в явном виде задать определение DEFAULT не задавая определения ON UPDATE.
...
`time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
...

Кроме того, если в INSERT или UPDATE поле прописано явно, автоматическое изменение также не происходит.
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
Аналогично использую постоянно, никаких проблем с часовыми поясами.
Только берите BIGINT, чтобы с датами после 2038 года проблем не было.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@den4eg11 Автор вопроса
Спасибо за ответы. Понял, что можно отменить автоматическое изменение timestamp, но для себя решил, что лучше буду хранить в инте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы