Шрифт:
IB_UDF | LN(VALUE) |
Linux, Win32 | Возвращает натуральный логарифм числа |
Аргументы | VALUE является столбцом или выражением, вычисляемым в число типа DOUBLE PRECISION |
Возвращаемое значение | Число типа DOUBLE PRECISION |
Пример | SELECT LN ( (CURRENT_TIMESTAMP - LEASE_DATE) / 7) AS NLOG_WEEKS FROM LEASE_ACCOUNT ; |
IB_UDF | LOG(VALUE1, VALUE2) |
Linux, Win32 | Возвращает логарифм по основанию x = VALUE1 числа у = VALUE2 |
Аргументы | VALUE1 (основание логарифма) и VALUE2 (число, с которым проводится операция) являются столбцами или выражениями, вычисляемыми в числа типа DOUBLE PRECISION |
Возвращаемое значение | Число типа DOUBLE PRECISION |
Замечания | Firebird 1.0.x и версии InterBase в этой функции имеют ошибку: log(x.y) ошибочно инвертирует аргументы и возвращает логарифм по основанию у числа x. Это было исправлено в версии 1.5. Имейте в виду, что существующие хранимые процедуры и код приложения могут иметь корректировки для этой ошибки |
Пример | SELECT LOG(8, (CURRENT_TIMESTAMP - LEASE_DATE) /7) AS LOG_WEEKS FROM LEASE_ACCOUNT; |
IB_UDF | LOG10(VALUE) |
Linux, Win32 | Возвращает десятичный логарифм входного числа |
Аргументы | VALUE является столбцом или выражением, вычисляемым в число типа DOUBLE PRECISION |
Возвращаемое значение | Число типа DOUBLE PRECISION |
Пример | SELECT LOG1O( (CURRENT_TIMESTAMP - LEASE_DATE) / 7) AS LOG10_WEEKS FROM LEASE_ACCOUNT ; |
IB_UDF | MODULO(VALUEl, VALUE2) |
Linux, Win32 | Функция возвращает остаток отделения двух целых чисел |
Аргументы | VALUE1 и VALUE2 являются столбцами или выражениями, вычисляемыми в числа типа SMALLINT или INTEGER |
Возвращаемое значение | Число типа DOUBLE PRECISION |
Пример | Фрагмент триггера: ...IF (MODULO(NEW.HOURS * 100, 775) > 25.0) THEN NEW.OVERTIME_HOURS = MODULO(NEW.HOURS * 100, 775) / 100; |
Связанные или похожие функции | См. также функцию f_Modulo, которая возвращает целое число |
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'; |