Инструменты пользователя

Инструменты сайта


addmonth

ADDMONTH()

Версии сервера

0.9 1.0 1.5.3 1.5.4 1.5.5 2.0 2.0.3 2.0.4 2.1 2.5 3.0
+ + + + + + + + + + +

Доступно в

Формат

ADDMONTH( TIMESTAMP, INTEGER )

Описание

внешняя функция UDF идущая в комплекте с сервером

добавляет заданное кол-во месяцев к первому аргументу

для того чтобы она была доступна надо её подключит к базе следующим запросом

DECLARE EXTERNAL FUNCTION ADDMONTH
    TIMESTAMP,
    INTEGER
RETURNS TIMESTAMP
ENTRY_POINT 'addMonth' MODULE_NAME 'fbudf';

Пример

  SELECT CURRENT_TIMESTAMP, addmonth(CURRENT_TIMESTAMP, 3) FROM rdb$database

См. также

Источник

%firebird%\UDF\

Обсуждение

Евгений, 2023/04/13 15:01
SET TERM ^ ;
 
CREATE OR ALTER FUNCTION ADD_MONTHS (
    ADATE DATE,
    MONTHS INTEGER)
RETURNS DATE
AS
DECLARE variable L_MONTH INTEGER;
DECLARE variable L_YEAR INTEGER;
DECLARE variable L_DAY INTEGER;
DECLARE variable I INTEGER;
BEGIN
  L_MONTH = EXTRACT(MONTH FROM :ADATE);
  L_YEAR = EXTRACT(YEAR FROM :ADATE);
  L_DAY = EXTRACT(DAY FROM :ADATE);
 
  I = 1;
  while (I <= :MONTHS) do
  BEGIN
    L_MONTH = :L_MONTH + 1;
    IF (:L_MONTH > 12) THEN
    BEGIN
      L_MONTH = 1;
      L_YEAR = :L_YEAR + 1;
    END
    I = :I + 1;
  END
 
  RETURN CAST(:L_DAY || '.' || :L_MONTH || '.' || :L_YEAR AS DATE);
END
^
 
SET TERM ; ^
Ваш комментарий. Вики-синтаксис разрешён:
B A T L M
 
addmonth.txt · Последнее изменение: 2009/05/09 14:31 (внешнее изменение)