Продолжаем разговор. (с)
дабы никто не подумал, что это был пятничный пост. :-)
В тех тестах операционка - Windows Server 2003 Standard Edition

SELECT CAST('04.05.2007' AS DATE) - (-7) FROM RDB$DATABASE

1) Попробовал на рабочем сервере
Firebird-2.0.1.12855, CS, Dialect 1, ODS11
Windows 2000 server, 
результат тот же 

10.05.2007 23:59:59

2) попробовал на домашнем компе,
FB2.0.0.12745  (RC5), 
Windows Server 2003 Standard Edition
+ база Ya (ODS10.0), Dialect 1
+ база ODS11, Dialect 1

10.05.2007 23:59:59

3) Все тоже самое, но база в Dialect 3
для повторения эксперимента заменяем DATE на TIMESTAMP

SELECT CAST('04.05.2007' AS TIMESTAMP) - (-7) FROM RDB$DATABASE

10.05.2007 23:59:59

SELECT CAST('04.05.2007' AS TIMESTAMP) + 7 FROM RDB$DATABASE

11.05.2007  0:00:00

4) скачал и поставил Firebird-2.0.2.12897-0_win32.zip
Classic
во всех вариантх (Dialect 1 и 3, ODS10 и 11)

10.05.2007 23:59:59

------------------------------------------
2 DY, HV:
Это баг ?
или нормальное поведение, о котором я незнаю...
ответьте плиз.
Мне надо просматривать свои базы, или это будет исправлено.

В данном случае я выкрутился, воткнув IIF, но когда и где это еще появится...
_целочисленных_ вычислений с датой много.

P.S. Это такая ненавязчивая рекомендация слезать наконец с первого диалекта?
:-)

Ответить