ANSI SQL-92 определяет DATE - DATE как возвращающий тип INTERVAL. Предполагается, что вы сможете извлечь скаляры из INTERVALS, используя тот же метод, что и извлекать их из DATE, используя & ndash; достаточно хорошо & ndash; функция ЭКСТРАКТ (4.5.3).
<выражение выражения> работает
datetime или интервал и возвращает
точное числовое значение, представляющее
значение одного компонента даты и времени
или интервал.
Однако, это очень плохо реализовано в большинстве баз данных. Вы, вероятно, застряли, используя что-то специфичное для базы данных. DATEDIFF довольно хорошо реализован на разных платформах.
Вот "настоящий" способ сделать это.
SELECT EXTRACT(DAY FROM DATE '2009-01-01' - DATE '2009-05-05') FROM DUAL;
Удачи!