Есть определённые причины, почему это плохая идея. Есть также причины, по которым ваш выбор ограничен. Это плохая идея, потому что это один элемент данных и по более практической причине, что вы не можете сохранить часовой пояс, если у вас есть два поля.
Как упоминалось выше, нулевые значения являются очевидным преимуществом использования двух полей.
Возможно, вы захотите использовать одно поле даты и времени и сохранить флаг, чтобы указать, вводил ли пользователь время. Это может быть логический флаг. Однако вам все равно придется подумать о том, как вы собираетесь использовать эти данные - ввод только даты в поле datetime приведет к тому, что для компонента времени будет задано значение midnight. Это будет иметь значение при сортировке и отборе. Кроме того, если вы храните часовые пояса, вам нужно быть очень осторожным при использовании данных.
Чтобы выполнить ваше требование знать, было ли введено время, вам нужно будет два поля. Вам не нужно, чтобы второе поле было временем.