Вводная - есть основной проект на Oracle, там в конструкторе пишутся различные расчетные формулы(в них используются функции - как стандартные так и свои). Мой "подпроект" на FB 2.1(3й диалект) - необходимо реализовать возможность расчета по "тем формулам" (через execute statement)- . В общем реализация удалась Но тут столкнулся с такой проблемой - в Oracle Trunc работает и с датой, в FB нет.
Первая мысль - написать UDF - но возник вопрос - как передовать/возвращать параметры - может быть число, а может дата. Что BY DESCRIPTOR? Вторая мысль - дополнительно "парсить" формулу и если trunc("DateTime") менять на cast("DateTime" as date)
Trunc с датой
Re: Trunc с датой
Даже BY DESCRIPTOR ты всё равно передаёшь вполне определённый тип, а не "нечто".
Без парсера тут не обойтись.
Кстати, в Оракле работает cast("DateTime" as Date) ? Если да, то я б посоветовал сразу формулу формировать с такой функцией, а не с Trunc.
Без парсера тут не обойтись.
Кстати, в Оракле работает cast("DateTime" as Date) ? Если да, то я б посоветовал сразу формулу формировать с такой функцией, а не с Trunc.
Re: Trunc с датой
На тему By BESCRIPTOR понятно было, что не пройдет - но всегда хочется надеятся на чудо
На Oracle cast("DateTime" as Date) - возвращает + hh/mm/ss, a trunc-ом они отрубают время....
и не только - говорят могут и до месяца округлить
trunc("DateTime", 'month')
На Oracle cast("DateTime" as Date) - возвращает + hh/mm/ss, a trunc-ом они отрубают время....
и не только - говорят могут и до месяца округлить
trunc("DateTime", 'month')
Последний раз редактировалось SerjP 14 ноя 2008, 14:53, всего редактировалось 2 раза.
-
- Сообщения: 44
- Зарегистрирован: 14 мар 2008, 21:01
Re: Trunc с датой
Если в Oracle есть EXTRACT то тебе это поможет.