Ballly
@Ballly

Как лучше хранить дату в БД при использовании виджета DateTimePicker?

Всем здравствуйте! Понимаю что вопрос не новый, и подобных вопросов не мало уже поступало, но все же спрошу. При использовании виджета DateTimePicker от kartik, какой лучше тип поля в БД использовать для хранения даты - integer, datetime или timestamp? Какой тип поля используете в своей практике?
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
1. Виджет от картика тут не причем! Поля в базе могут отличаться сильно от визуализации и использований.
2. Смотря для каких целей вам нужно использовать дату.

TIMESTAMP - это 4 байта
DATETIME - это 8 байтов

Временные метки также легче в базе данных и быстрее индексируются.

Тип DATETIME используется, когда вам нужны значения, которые содержат как дату, так и время. MySQL извлекает и отображает значения DATETIME в формате «ГГГГ-ММ-ДД ЧЧ: ММ: СС». Поддерживаемый диапазон: от 1000-01-01 00:00:00 до 9999-12-31 23:59:59.

Тип TIMESTAMP имеет диапазон от 1970-01-01 00:00:01 UTC до 2038-01-09 03:14:07 UTC. Он имеет различные свойства в зависимости от версии MySQL и режима SQL, в котором работает сервер.

DATETIME является постоянным, в то время как TIMESTAMP определяется настройкой time_zone.

Я принимаю это решение на семантической основе.

Я использую метку времени (TIMESTAMP), когда мне нужно записать (более или менее) фиксированный момент времени. Например, когда запись была вставлена ​​в базу данных или когда произошло какое-либо действие пользователя.

Я использую поле даты и времени (DATETIME), когда дата и время могут быть установлены и изменены произвольно. Например, когда пользователь может позже сохранить изменения.

СТАТЬЯ НА ТЕМУ
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы