Thanks Terri!
Based on the provided results our team can confirm that the issue most likey related to using a DATE bind parameter directly in Toad. For example, you mentioned this fails for you:
SELECT TRUNC(:P_AS_OF_DATE) AS test_date FROM dual;
But using a VARCHAR bind parameter and explicitly converting it with TO_DATE works correctly:
SELECT TRUNC(TO_DATE(:P_AS_OF_DATE, 'YYYY-MM-DD')) AS test_date
FROM dual;
For now, the safest and best workaround is to define the bind variable as:
Bind variable type: VARCHAR
Bind variable value: 2026-04-23
And then convert it in the SQL: TO_DATE(:as_of_date, 'YYYY-MM-DD')
So in your example: "alias.field <= :as_of_date" the temporary workaround would be: "alias.field <= TO_DATE(:as_of_date, 'YYYY-MM-DD')"
Please note that this compares against midnight at the start of the selected day. For example, 2026-04-23 is treated as 2026-04-23 00:00:00. If your date column can contain time values and you want the condition to include the entire selected day, this version is best:
alias.field < TO_DATE(:as_of_date, 'YYYY-MM-DD') + 1
For date equality filters, the safest pattern is usually: alias.field >= TO_DATE(:as_of_date, 'YYYY-MM-DD') AND alias.field < TO_DATE(:as_of_date, 'YYYY-MM-DD') + 1
This avoids relying on the current DATE bind parameter handling and should work consistently while we investigate a proper fix in Toad.
I hope this helps out but please let us know of other questions.