untied
Сдвинутый новичок
Как лучше хранить дату и время в MySQL?
Я всегда храню в виде метки, полученной ф-ей time() (поле в таблице имеет тип BIGINT). Записи без проблем сортируются по дате и времени, а при выводе в html-страницу такую метку несложно отформатировать по вкусу ф-ей date().
Но может логичнее использовать специальные типы MySQL? И почему?
Тип DATE, к примеру, занимает всего 3 байта. То есть если известно абсолютно точно, что для каждой записи нужно хранить только дату (а время не имеет значения), то можно сэкономить место.
С другой стороны время может неожиданно понадобиться, когда уже все работает (и такие случаи бывали: сказали "Ха! А время события ты и забыл!"). При этом если хранится именно метка, то в структуре таблице менять ничего не придется, надо только откорректировать вызов ф-ии date().
Я всегда храню в виде метки, полученной ф-ей time() (поле в таблице имеет тип BIGINT). Записи без проблем сортируются по дате и времени, а при выводе в html-страницу такую метку несложно отформатировать по вкусу ф-ей date().
Но может логичнее использовать специальные типы MySQL? И почему?
Тип DATE, к примеру, занимает всего 3 байта. То есть если известно абсолютно точно, что для каждой записи нужно хранить только дату (а время не имеет значения), то можно сэкономить место.
С другой стороны время может неожиданно понадобиться, когда уже все работает (и такие случаи бывали: сказали "Ха! А время события ты и забыл!"). При этом если хранится именно метка, то в структуре таблице менять ничего не придется, надо только откорректировать вызов ф-ии date().