This will do for new records. For the existing ones problem remains. So I've been awfully wrong not only for the question asked, but in initial design as well, and yeah it's "here we go again..."
As long as you understand it is only a Display problem and not a data or storage problem.
Even if the field has a format applied, 12:00:00 AM or 00:00:00 as part of the date will not display. It is there, just will not display. I prove this in my example where I simply add time to the existing field using my timepicker.
As said by @kitayam if it bothers you so much you have to see it, then have the default add 1 second to the date and get something 1/1/2023 00:00:01. I tried adding a fraction of a second hoping that would force the display, but it did not.
So I do not understand the "existing problem". There is no existing problem. All you existing records are valid they just have a time of 12:00:00 AM. You could do an update query to add one second to all the records.
Now be careful because it may break a lot of things.
if SomeField = SomeDate
Now that you add a time values as part of your datetimes it is highly unlikely that will return any records. Then you have to do something like
if int(someField) = int(someDate)
or
if SomeField => someDate and somefield < someDate + 1