This can be handled much like BIT is handled. That is, internally all BIT operations are integer operations, but when a result is stored, it is stored as either 0 or 1. That allows BIT to be freely intermixed with INTEGER in expressions. Similarly, internally all DATE operations can be LocalDateTime operations, but when a result is stored, the time portion is discarded. That allows DATE to be freely intermixed with DATETIME in expressions.
This can be handled much like BIT is handled. That is, internally all BIT operations are integer operations, but when a result is stored, it is stored as either 0 or 1. That allows BIT to be freely intermixed with INTEGER in expressions. Similarly, internally all DATE operations can be LocalDateTime operations, but when a result is stored, the time portion is discarded. That allows DATE to be freely intermixed with DATETIME in expressions.