Ballly
@Ballly

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

Всем здравствуйте! Понимаю что вопрос не новый, и подобных вопросов не мало уже поступало, но все же спрошу. При использовании виджета DateTimePicker от kartik, какой лучше тип поля в БД использовать для хранения даты - integer, datetime или timestamp? Какой тип поля используете в своей практике?
  • Вопрос задан
  • 158 просмотров
Решения вопроса 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), когда дата и время могут быть установлены и изменены произвольно. Например, когда пользователь может позже сохранить изменения.

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

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

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