Возможность хранить продолжительность / время в mysql поле datetime - PullRequest
1 голос
/ 18 апреля 2019

У меня есть поле, которое по разным причинам должно принимать различные данные даты / времени.Хотя я могу использовать тип DATETIME для хранения даты и времени, например:

  • 2014-01-01 00:00:00 (дата)
  • 2014-01-01 01:20:23 (дата-время)

Я не могу понять, как сохранить время.Будет ли это возможно каким-либо образом, или мне нужно будет хранить какое-то хак-значение, которое будет использоваться для анализа в приложении, например:

  • 0000-01-01 05:00:00 (синтаксический анализ 05:00:00 -> время)

Или, есть ли лучший способ сохранить это?

Например, как я в настоящее время делаю sql следующим образом:

select if(vd=date(vd), date(vd), 
       if(date(vd)='0000-01-01', right(vd,8), 
       vd)) formatted_vd, vd from spread

formatted_vd    vd
2014-01-01      2014-01-01 00:00:00
2014-01-01      01:12:23    2014-01-01 01:12:23
05:00:00        0000-01-01 05:00:00

1 Ответ

2 голосов
/ 18 апреля 2019

В то время как MySQL действительно имеет тип TIME , большую часть времени (без каламбура) вы не захотите его использовать. Вместо этого лучше использовать DATETIME.

При этом, если у вас есть значение DATETIME, и по какой-то причине вы хотите изолировать компонент времени, MySQL предлагает функцию TIME(), которая может извлекать время самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...