Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Шрифт:
FBUDF | ADDMINUTE(VALUE1, VALUE2) |
Linux, Win32 | Добавляет полное количество минут к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы | VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. VALUE2: количество добавляемых минут (целое число) или целое выражение |
Возвращаемое значение | тип TIMESTAMP |
Замечания | Если входное значение имеет тип TIME, ТО минуты добавляются к этому времени для текущей даты. Если это тип DATE, то время дня будет полночью |
Пример | Следующий оператор добавляет 45 минут к текущему системному времени типа TIMESTAMP: SELECT ADDMINUTE(CURRENT_TIME, 45) FROM RDB$DATABASE; |
Связанные или похожие функции | См. также ADDDAY, ADDSECOND и т.д. |
FBUDF | ADDMONTH(VALUE1, VALUE2) |
Linux, Win32 | Добавляет |
Аргументы | VALUE1: столбец или выражение, результатом вычисления которого является тип TIMESTAMP. VALUE2: количество добавляемых месяцев (целое число) или целое выражение |
Возвращаемое значение | Тип TIMESTAMP, календарный месяц более поздний, чем VALUE1 |
Замечания | Если входное значение имеет тип TIME, то месяцы добавляются к этому времени дня для текущей даты. Если это тип DATE, ТО время дня будет полночью |
Пример | Следующий оператор использует ADDMONTH для вычисления даты завершения контракта: UPDATE CONTRACT SET FINAL_DATE = CASE CONTRACT_TERM WHEN 'HALF-YEARLY' THEN ADDMONTH(START_DATE, 6) WHEN 'YEARLY' THEN ADDMONTH(START_DATE, 12) ELSE ADDWEEK(START DATE, TRUNCATE (CONTRACT_AMT/WEEKLY_/EE) ) END WHERE START_DATE IS NOT NULL AND AMT PAID IS NOT NULL AND WEEKLY_FEE IS NOT NULL AND CONTRACTED = 1.2345; |
Связанные или похожие функции | См. также ADDDAY, ADDYEAR и т.д. |
FBUDF | ADDSECOND(VALUE1 , VALUE2) |
Linux, Win32 | Добавляет полное количество секунд к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы | VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. VALUE2: количество добавляемых секунд (целое число) или целое выражение |
Возвращаемое значение | Тип TIMESTAMP |
Замечания | Если входное значение имеет тип TIME, то секунды добавляются к этому времени для текущей даты. Если это тип DATE, то время дня будет полночью |
Пример | Следующий оператор добавляет 120 секунд к текущей системной дате: SELECT ADDSECOND(CURRENT_DATE, 120) FROM RDB$DATABASE; |
Связанные или похожие функции | См. также ADDMONTH, ADDMILLISECOND О и т.д. |
FBUDF | ADDWEEK(VALUE1, VALUE2) |
Linux, Win32 | Добавляет полное количество недель к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы | VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. VALUE2: количество добавляемых недель (целое число) или целое выражение |
Возвращаемое значение | Настроенное значение TIMESTAMP (эквивалентно VALUE1 + (7 * VALUE2)) |
Замечания | Если входное значение имеет тип TIME, то недели добавляются к этому времени для текущей даты. Если это тип DATE, то время дня будет полночью |
Пример | Следующий оператор вычисляет количество недель выплаты гонорара и использует это в ADDWEEK для вычисления конечной даты контракта: |
UPDATE CONTRACT | SET FINAL_DATE = ADDWEEK(START_DATE, TRUNCATE(CONTRACT_AMT/WEEKLY_FEE)) WHERE START DATE IS NOT NULL AND AMT_PAID IS NOT NULL AND WEEKLY_FEE IS NOT NULL AND CONTRACTED = 12345; |
Связанные или похожие функции | См. также ADDDAY, ADDMONTH и т.д. |
FBUDF | ADDYEAR(VALUE1, VALUE2) |
Linux, Win32 | Добавляет полное количество лет к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы | VALUE1: столбец или выражение, результатом вычисления которого является тип TIMESTAMP. VALUE2: количество добавляемых лет (целое число) или целое выражение |
Возвращаемое значение | тип TIMESTAMP |
Замечания | Если входное значение имеет тип TIME, то годы добавляются к этому времени дня для текущей даты. Если это тип DATE, то время дня будет полночью |
Пример | Следующий оператор вычисляет конечную дату аренды, получая начальную дату: UPDATE LEASE SET FINAL_DATE = ADDYEAR(START_DATE, 5) WHERE START_DATE IS NOT NULL AND LEASE_ID = 12345; |
Связанные или похожие функции | См. также ADDDAY, ADDMONTH и т.д. |
FBUDF | GETEXACTTIMESTAMF |
Linux, Win32 | Возвращает системное время в виде TIMESTAMP с точностью до ближайших миллисекунд |
Аргументы | Нет аргументов |
Возвращаемое значение | Тип TIMESTAMP |
Замечания | Контекстная переменная даты и времени CURRENT_TIMESTAMP и предварительно определенный литерал 'NOW' возвращают системное время только с точностью до ближайшей секунды, GETEXACTTIMESTAMP в настоящий |
Пример | Следующий оператор возвращает точное время и дату: SELECT GETEXACTTIMESTAMP AS TSTAMP FROM RDB$DATABASE; |
FBUDF | F_AGEINDAYS(VALUE1, VALUE2) |
Linux, Win32 | Вычисляет возраст в днях для даты(VALUE1) при ссылке на другую дату ;(VALUE2). Обычно дата, на которую ссылаются, является текущей датой, но это не обязательно должна быть она. Например, вы можете найти время, которое прошло с некоторого другого события |
Аргументы | VALUE1: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. VALUE2: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP |
Возвращаемое значение | Положительное или отрицательное число типа INTEGER |
Пример | SELECT FIRST_NAME, LAST_NAME, F_AGEINDAYS(DATE_OF_BIRTH, CURRENT_DATE) AS i CURRENT_AGE | FROM MEMBERSHIP WHERE DATE_OF_BIRTH < CURRENT_DATE - (5 * 365); |
Связанные или похожие функции | См. также F_AgeInDaysThreshold |
FREEUDFLIB | F_AGEINDAYSTHRESHOLD(VALUE 1, VALUE 2, MINVALUE, USEMIN, MAXVALUE, USEMAX |
Win32 | Вычисляет возраст в днях для даты(VALUE1) при ссылке на другую дату(VALUE2) и возвращает не это значение, а указанное минимальное число, которое меньше вычисленного значения или заданного максимального числа, которое больше вычисленного значения |
Аргументы | VALUE1: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. VALUE2: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. Это не обязательно должна быть дата, меньшая чем VALUE1 MINVALUE: целое число. Это возвращаемое значение, если вычисленное значение будет меньше. Установите в 0, если вам нужно использовать только MAXVALUE. USEMIN: Установите в 1, если вам нужно использовать только MINVALUE. Установите USEMAX в 0, если вам нужно использовать только MINVALUE. MAXVALUE: целое число. Это возвращаемое значение, если вычисленное значение будет больше. Установите в 0, если вам нужно использовать только MINVALUE. USEMAX: целое число. Установите в 1, если вам нужно использовать MAXVALUE. Установите USEMIN в 0, если вам нужно использовать только MAXVALUE |
Возвращаемое значение | Число типа INTEGER |
Замечания | Если последние четыре аргумента установлены в 0, эта функция работает так же, как и F_AGETHRESHOLD |
Пример | Следующий оператор вернет список, показывающий все счета с датами обязательства, меньше, чем 30 дней тому назад, вместе просроченными на 29 дней обязательствами и все с датами обязательства, более ранними, чем 90 дней тому назад, и просроченными обязательствами на 90 дней. Все остальные будут показаны с их фактическими сроками: SELECT ACCOUNT_NAME, F_AGEINDAYSTHRESHOLD(DUE_DATE, CURRENT_DATE, 29, 1, 90, 1) AS OVERDUE_AGE 1 FROM ACCOUNT; |
Связанные или похожие функции | См. также AGEINDAYS |
FREEUDFLIB | F_AGEINMONTHS(VALUE1, VALUE2) |
Win32 | Вычисляет возраст в месяцах для даты(VALUE1) при ссылке на другую дату(VALUE2). Обычно дата, на которую ссылаются, является текущей датой, но это не обязательно должна быть она. Например, вы можете найти время, которое прошло с некоторого другого события |
Аргументы | VALUE1: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. VALUE2: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. Не обязательно должно быть более ранней датой, чем VALUE1 |
Возвращаемое значение | Положительное или отрицательное число типа INTEGER |
Пример | SELECT ACCOUNT NAME, F_AGEINMONTHS (DUE_DATE, CURRENT_DATE) AS OVERDUE AGE FROM ACCOUNT WHERE ACCT_BALANCE > 0 AND DUE_DATE < CURRENT_DATE - (6 * 7); |
Связанные или похожие функции | См. также F_AGEINMONTHSTHRESHOLD |
FREEUDFLIB | F_AGEINMOUTHSTHRESHOLD(VALUE1, VALUE2, MIKVALUE, USEWIM, MAXVALUE, USEMAX) |
Win32 | Работает для F_AgelnMonths так же, как и F_AgeInDaysThreshold работает для F_AGEINDAYS |
Аргументы | F_AgeInDays |
FREEUDFLIB | F_AGEINWEEKS(VALUE1, VALUE2) |
Win32 | Вычисляет возраст в неделях для даты(VALUE1) при ссылке на другую дату(VALUE2). Обычно дата, на которую ссылаются, является текущей датой, но это не обязательно должна быть она. Например, вы можете найти время, которое прошло с некоторого другого события |
Аргументы | VALUE1: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. VALUE2: столбец или выражение, результатом вычисления которого является значение типа DATE или TIMESTAMP. Не обязательно должно быть более ранней датой, чем VALUE1 |
Возвращаемое значение | Положительное или отрицательное число типа INTEGER |
Пример | SELECT ACCOUNT_NAME, F_AGEINWEEKS(DUE DATE, CURRENT_DATE) AS OVERDUE_AGE FROM ACCOUNT WHERE ACCT BALANCE > 0 AND DUE DATE < CURRENT_DATE - (366/2); |
Связанные или похожие функции | См. также F_AGEINWEEKSTHRESHOLD |