Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

Как прибавить к дате несколько месяцев   Найти похожие ветки 

 
Rule ©   (2004-10-21 11:39) [0]

FB 1.x значит проблемма в хранимой процедуре надо прибавить пару месяцев, щас я прибавляю так
DT=:MonthCount*30;
но какбы появляется погрешность в вычисленях так как не в каждом месяце то по 30 дней, что можете посоветовать, только убедительная просьба не надо советовать UDF ...

Всем заранее спасибо ...


 
Johnmen ©   (2004-10-21 11:55) [1]

Разложить дату на год, месяц, день.
Увеличить месяц.
Проверить и, если надо, скорректировать день для получившегося месяца.
Собрать дату.


 
stud ©   (2004-10-21 11:56) [2]

модуль DateUtils там много интересного


 
Rule ©   (2004-10-21 12:12) [3]

Johnmen ©   (21.10.04 11:55) [1]
если не сложно то с помощью чего разложить и собрать ?

stud ©   (21.10.04 11:56) [2]
это в делфи, а я прошу в Фаерберде, а если вы про УДФ, то в принципе то получилось, но не подходит в ряде политических соображений :)


 
stud ©   (2004-10-21 12:18) [4]

а передать в процедуру готовый параметр? или есть ограничения?


 
stud ©   (2004-10-21 12:20) [5]

разложить можно кажется extract


 
Johnmen ©   (2004-10-21 12:22) [6]


> Rule ©   (21.10.04 12:12) [3]
> Johnmen ©   (21.10.04 11:55) [1]
> если не сложно то с помощью чего разложить и собрать ?


разложить: EXTRACT
собрать: ||


 
Rule ©   (2004-10-21 12:22) [7]

stud ©   (21.10.04 12:18) [4]
Все подсчеты ведутся внутри процедуры, и входных параметров нет вообще ...
stud ©   (21.10.04 12:20) [5]
он помоему входит в состав слекта только, а вот как назад собрать ?


 
Rule ©   (2004-10-21 12:28) [8]

Johnmen ©   (21.10.04 12:22) [6]
собрать: ||

так это объединение строковых параметров, или вы имеете ввиду ещё и cast  использовать, тогда да ... мда спасибо ..., тогда как мне разложить подсчитаную дату, а не ту которая хранится в таблице ?

во, понял получилось чтото вроде:
Select extract(day from :date_end), extract(month from :date_end), extract(year from :date_end) from rdb$database into :date_end;

всем спасибо :)


 
Rule ©   (2004-10-21 12:48) [9]

Rule ©   (21.10.04 12:28) [8]
вернее

Select extract(day from :date_end), extract(month from :date_end), extract(year from :date_end) from rdb$database into :nday, :nmonth, :nyear;


 
Johnmen ©   (2004-10-21 13:04) [10]

>Rule ©   (21.10.04 12:28) [8]
>ещё и cast  использовать

Не обязательно. Можно использовать неявное преобразование.
day||"."||month||"."||year


 
Rule ©   (2004-10-21 13:16) [11]

Johnmen ©   (21.10.04 13:04) [10]
Ну и с cast"ом работает, и так работает, спасибо за информацию...



Страницы: 1 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
3-1098796977
Term
2004-10-26 17:22
2004.11.21
Где задаётся формат даты у MS SQL2000


14-1099576030
Comp
2004-11-04 16:47
2004.11.21
Win Gate 3.0


14-1099252499
Поручик
2004-10-31 22:54
2004.11.21
Кто пользуется Оперой


14-1099723843
Kolan
2004-11-06 09:50
2004.11.21
А придумайте мне должность


1-1098698943
diabolik_krsk
2004-10-25 14:09
2004.11.21
Обработка событий через TActionlist