MySQL имеет три типа данных, подходящих для значений даты / времени. Это довольно хорошо объяснено в документации .
У вас есть три типа значений:
- Только дата.
- Дата с указанием времени, но без часового пояса.
- Дата с указанием времени и часового пояса.
Но основные вопросы, которые нужно задать:
- Вам нужна только дата или время также необходимо?
- Вам нужен часовой пояс?
Если вам нужна только дата, тогда подойдет date
. В противном случае вы хотите datetime
или timetamp
. Что зависит от того, как вы хотите обрабатывать часовые пояса.
Если вам действительно нужно сохранить часовой пояс со значением, я бы посоветовал вам задуматься о том, действительно ли это необходимо. Как правило, timestamp
достаточно, потому что он хранит значения в UTC, которые затем могут быть преобразованы в любую исходную метку времени. Вы можете сохранить исходный часовой пояс в альтернативном столбце.
Если вам действительно нужно обрабатывать все три типа без компромиссов, то вам, возможно, придется использовать строку. В этом случае вы должны использовать правильно отформатированную строку:
- YYYY-MM-DD
- ГГГГ-ММ-ДД ЧЧ: МИ: СС
- ГГГГ-ММ-ДД ЧЧ: МИ: СС + ТЗ
Первые два легко преобразуются в соответствующий тип в MySQL. В-третьих, вы можете извлечь часовой пояс и добавить его в качестве смещения (с небольшим количеством работы).
Однако я сомневаюсь, что этот подход необходим. A datetime
, вероятно, достаточно.