Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Шрифт:
IB_UDF | PI |
Linux, Win32 | Возвращает значение n = 3.14159... |
Аргументы | Аргументы отсутствуют, однако скобки требуются |
Возвращаемое значение | Значение n в виде числа DOUBLE PRECISION |
Пример | SELECT PI AS PI_VALUE FROM RDB$DATABASE; |
IB_UDF | RAND |
Linux, Win32 | Возвращает случайное число в диапазоне между 0 и 1. Заметьте, что эта функция не работает в Firebird 1.5 |
Аргументы | Аргументы отсутствуют, |
Возвращаемое значение | Число типа DOUBLE PRECISION |
Замечания | В настоящее время используется для установления начального значения генератора |
Пример | SELECT RAND AS RANDOM NUMBER FROM RDB$DATABASE; |
IB_UDF | ROUND(VALCE) |
Linux, Win32 | Округляет число с фиксированной точкой до ближайшего целого |
Аргументы | VALUE является столбцом или выражением, вычисляемым в число с фиксированной точкой с дробными разрядами >0 |
Возвращаемое значение | Число целого типа |
Замечания | Это полное округление. Если цифра сразу после десятичной точки больше или равна 5, то к цифре перед десятичной точкой добавляется единица, и у числа отсекаются дробные цифры. В противном случае просто отсекаются все дробные цифры |
Пример | Следующий оператор составляет смету на основе результата округления произведения двух чисел NUMERIC(11,2): SELECT JOB_NO, ROUND(RATE * HOURS) + 1 AS ESTIMATE FROM QUOTATION WHERE RATE IS NOT NULL AND HOURS IS NOT NULL; |
Связанные или похожие функции | См. также TRUNCATE, F_ROUNDFLOAT |
IB_UDF | SIGN(VALUE) |
Linux, Win32 | Возвращает 0, 1 или -1 в зависимости от того, является ли входное значение положительным, нулем или отрицательным соответственно |
Аргументы | VALUE является столбцом или выражением, вычисляемым в число типа DOUBLE PRECISION |
Возвращаемое значение | Число типа DOUBLE PRECISION |
Пример | Фрагмент триггера: ... IF (SIGN(NEW.CURRENT_VALUE) < 1) THEN ...; |
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- |
Возвращаемое значение | '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 и т.д. |