Общая идея заключается в использовании DateTime в качестве представления времени общего назначения. Вы можете быть смущены тем, что Time также включает в себя компонент даты, поскольку он представляет собой инкапсуляцию концепции UNIX time_t
секунд с начала эпохи или UNIX_TIME()
в терминах MySQL.
Как я объясняю в другом ответе , время является более ограниченным представлением, чем DateTime, и может представлять только дату и время до 18 января 2038 года. DateTime может представлять 4712 лет до нашей эры и 21 000 лет в будущее.
Если вам нужно отдельное поле, представляющее время суток, которое, как вам кажется, здесь может понадобиться, вы должны создать одно числовое поле, которое будет представлять собой секунды после полуночи, если требуется такая точность, или более удобное. " HHMM "представление, которое не касается различий между base-60 и base-10.
Другая альтернатива состоит в том, чтобы иметь два поля: одно - DateTime, а другое - Date. Если вы создаете запись календаря без определенного времени, заполните только поле Дата. Если у него есть время, заполните оба.
Помните, что поле даты заполнено литеральной датой и не касается часовых поясов, поэтому это может вызвать проблемы, если оно не указано в местном времени пользователя. DateTime всегда может быть преобразован в местное время пользователя, если требуется.