Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Шрифт:
IB_UDF | SQRT(VALUE) |
Linux, Win32 | Возвращает квадратный корень числа |
Аргументы | VALUE является столбцом или выражением, вычисляемым в число типа DOUBLE PRECISION |
Возвращаемое значение | Число типа DOUBLE PRECISION |
Пример | Фрагмент триггера: ... IF (SQRT(NEW.HYPOTENUSE) = SQRT(NEW.SIDE1) + SQRT(NEW.SIDE2)) THEN NEW.RIGHT ANGLED TRIANGLE = 'T'; |
FBUDF | TRUNCATE(VALUE) |
Linux, Win32 | Усекает тип с фиксированной точкой до следующего меньшего целого |
Аргументы | VALUE является столбцом или выражением, вычисляемым в число с фиксированной точкой с дробными разрядами > 0 |
Возвращаемое | Число целого типа |
Замечания | Как и для некоторых других функций из этой библиотеки, вам нужно два объявления, чтобы использовать 32- и 64-битовый вход. Проверьте объявления в скрипте fdudf.sql truncate и i64truncate |
Пример | Следующий оператор составляет смету на основе результата усечения произведения двух чисел NUMERIC (11,2): SELECT JOB_NO, TRUNCATE (RATE * HOURS) + 1 AS ESTIMATE FROM QUOTATION WHERE RATE IS NOT NULL AND HOURS IS NOT NULL; |
Связанные или похожие функции | См. также ROUND, F_TRUNCATE |
Функции даты и времени
FBUDF | DOW(VALUE) |
Linux, Win32 | Получает тип TIMESTAMP и возвращает день недели (на английском языке) в качестве строки со смешанными строчными и прописными буквами |
Аргументы | VALUE- столбец или выражение, результатом вычисления которого является тип TIMESTAMP |
Возвращаемое значение | 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' или 'Sunday' |
Пример | Этот оператор добавляет четыре дня и возвращает день недели для настроенной даты: SELECT DOW(CURRENT_DATE + 4) FROM RDB$DATABASE; |
Связанные или похожие функции | См. также SDOW, внешнюю функцию EXTRACT |
FBUDF | SDOW(VALUE) |
Linux, Win32 | Получает тип TIMESTAMP и возвращает день недели (на английском языке) в качестве аббревиатуры со смешанными строчными и прописными буквами |
Аргументы | VALUE - столбец или выражение, результатом вычисления которого является тип TIMESTAMP |
Возвращаемое значение | 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' или 'Sun' |
Пример | Этот оператор добавляет четыре дня и возвращает день недели для настроенной даты: SELECT SDOW(CURRENT_DATE + 4) FROM RDB$DATABASE; |
Связанные или похожие функции | См. также DOW, внешнюю функцию EXTRACT |
FBUDF | ADDDAY(VALUE1, VALUE2) |
Linux, Win32 | Добавляет полное число дней к типу даты или времени и возвращает эту измененную дату в виде TIMESTAMP |
Аргументы | VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. VALUE2: количество добавляемых дней (целое число) или целое выражение |
Возвращаемое значение | Настроенное TIMESTAMP (эквивалентно VALUE1 + VALUE2) |
Замечания | Если входом является тип TIME, то дни будут добавлены к этому времени дня текущей даты. Если это тип DATE, ТО время дня будет полночью |
Пример | Следующий оператор прибавляет 4 дня к текущей дате и возвращает полученную дату и время 0 часов 0 минут 0 секунд: SELECT ADDDAY(CURRENT_DATE, 4) FROM RDB$DATABASE; |
Связанные или похожие функции | См. также ADDHOUR, ADDMINUTE и др. |
FBUDF | ADDHOUR(VALUE1, VALUE2) |
Linux, Win32 | Добавляет полное количество часов к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы | VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. VALUE2: количество добавляемых часов (целое число) или целое выражение |
Возвращаемое значение | Настроенное значение TIMESTAMP (эквивалентно VALUE1 + (VALUE2 / 2)) |
Замечания | Если входное значение имеет тип TIME, ТО часы добавляются к этому времени для текущей даты. Если это тип DATE, то время дня будет полночью |
Пример | Следующий оператор добавляет 10 часов и возвращает измененную дату и время: SELECT ADDHOUR(CURRENT_TIMESTAMP, 10) FROM RDB$DATABASE; |
Связанные или похожие функции | См. также ADDDAY, ADDMINUTE и т.д. |
FBUDF | ADDMILLISECOND(VALUE1, VALUE2) |
Linux, Win32 | Добавляет полное количество миллисекунд к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы | VALUE1: столбец или выражение, результатом вычисления которого является тип даты или времени. |
VALUE2: количество добавляемых миллисекунд (целое число) или целое выражение | Возвращаемое значение тип TIMESTAMP |
Замечания | Если входное значение имеет тип TIME, то миллисекунды добавляются к этому времени для текущей даты. Если это тип DATE, то время дня будет полночью |
Пример | Следующий оператор добавляет 61 234 миллисекунды к текущему системному времени типа TIMESTAMP: SELECT ADDMILLISECOND(CURRENT_TIME, 61234) FROM RDB$DATABASE; |
Связанные или похожие функции | См. также ADDDAY, ADDMINUTE и т.д. |
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 | Добавляет полное количество месяцев к типу даты или времени и возвращает измененную дату в виде типа TIMESTAMP |
Аргументы | 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 и т.д. |