Hey!
I believe you could have 3 fields:
1. Type (single select)
2. Date and Time (date time field)
3. Adjusted Date and Time (formula).
Each time you create a new record, you will select the corresponding Type (e.g. flight schedule); then manually set a given Date and Time.
The Adjusted Date Time formula will take care of applying the corresponding time (same, or 00:00) regardless of the actual time you input on your Date Time field for Open Train Tickets.
For visualizing this info or sharing with 3rd parties, you will never use Date Time, but Adjusted Date Time.
IF(
Type = "Open Train Ticket",
DATETIME_FORMAT(
DATETIME_PARSE(
DATETIME_FORMAT({Date and Time}, 'YYYY-MM-DD') & " 00:00",
'YYYY-MM-DD HH:mm'
),
'M/D/YYYY HH:mm'
),
DATETIME_FORMAT({Date and Time}, 'M/D/YYYY HH:mm')
)
Depending on your Time Zone, you might need some small additional tweaks.
If you need a more scalable and robust solution, I would suggest creating a new table for "Types", create one record per type, and have a checkbox field on it for "Default to 00:00". Then, have a lookup on your initial table (Demo on my screenshot above), and have the Adjusted Date Time formula verify whether the lookup is checked or unchecked. In this way, you will not have to change the formula each time you create a new Type.
I hope this helps.
Mike, Consultant @ Automatic Nation