Страница 1 из 1

Trunc с датой

Добавлено: 14 ноя 2008, 10:38
SerjP
Вводная - есть основной проект на Oracle, там в конструкторе пишутся различные расчетные формулы(в них используются функции - как стандартные так и свои). Мой "подпроект" на FB 2.1(3й диалект) - необходимо реализовать возможность расчета по "тем формулам" (через execute statement)- . В общем реализация удалась :) Но тут столкнулся с такой проблемой - в Oracle Trunc работает и с датой, в FB нет.
Первая мысль - написать UDF - но возник вопрос - как передовать/возвращать параметры - может быть число, а может дата. Что BY DESCRIPTOR? Вторая мысль - дополнительно "парсить" формулу и если trunc("DateTime") менять на cast("DateTime" as date)

Re: Trunc с датой

Добавлено: 14 ноя 2008, 13:59
WildSery
Даже BY DESCRIPTOR ты всё равно передаёшь вполне определённый тип, а не "нечто".
Без парсера тут не обойтись.
Кстати, в Оракле работает cast("DateTime" as Date) ? Если да, то я б посоветовал сразу формулу формировать с такой функцией, а не с Trunc.

Re: Trunc с датой

Добавлено: 14 ноя 2008, 14:19
SerjP
На тему By BESCRIPTOR понятно было, что не пройдет - но всегда хочется надеятся на чудо :)
На Oracle cast("DateTime" as Date) - возвращает + hh/mm/ss, a trunc-ом они отрубают время....
и не только - говорят могут и до месяца округлить
trunc("DateTime", 'month')

Re: Trunc с датой

Добавлено: 14 ноя 2008, 14:41
armagedon2007
Если в Oracle есть EXTRACT то тебе это поможет.