To my own surprise, I don't understand how it works:
SELECT NVL2 (null, SYSDATE - (SYSDATE - 1), SYSDATE)
FROM dual;
How and why Oracle succeffully converts DATE to pseudo-number (Typ=14)? I've read NVL2, Numeric Precedence and Implicit Data Conversion documentation, but still have no idea how it works. There is -- in implicit type conversion table.