Udostępnij za pośrednictwem


Funkcje liczbowe

W poniższej tabeli opisano funkcje liczbowe zawarte w zestawie funkcji skalarnych ODBC. Wywołując SQLGetInfo z typem informacji SQL_NUMERIC_FUNCTIONS, aplikacja może określić, które funkcje liczbowe są obsługiwane przez sterownik.

Wszystkie funkcje liczbowe zwracają wartości typu danych SQL_FLOAT z wyjątkiem ABS, ROUND, TRUNCATE, SIGN, FLOOR i CEILING, które zwracają wartości tego samego typu danych co parametry wejściowe.

Argumenty oznaczone jako numeric_exp mogą być nazwą kolumny, wynikiem innej funkcji skalarnej lub literału liczbowego, gdzie podstawowy typ danych może być reprezentowany jako SQL_NUMERIC, SQL_DECIMAL, SQL_TINYINT, SQL_SMALLINT, SQL_INTEGER, SQL_BIGINT, SQL_FLOAT, SQL_REAL lub SQL_DOUBLE.

Argumenty oznaczone jako float_exp mogą być nazwą kolumny, wynikiem innej funkcji skalarnej lub literału liczbowego, gdzie podstawowy typ danych może być reprezentowany jako SQL_FLOAT.

Argumenty oznaczone jako integer_exp mogą być nazwą kolumny, wynikiem innej funkcji skalarnej lub literału liczbowego, gdzie podstawowy typ danych może być reprezentowany jako SQL_TINYINT, SQL_SMALLINT, SQL_INTEGER lub SQL_BIGINT.

Funkcje CURRENT_DATE, CURRENT_TIME i CURRENT_TIMESTAMP skalarne zostały dodane w wersji ODBC 3.0 w celu dostosowania do języka SQL-92.

Funkcja Opis
ABS(numeric_exp) (ODBC 1.0) Zwraca wartość bezwzględną numeric_exp.
ACOS(float_exp) (ODBC 1.0) Zwraca arcus cosinus float_exp jako kąt wyrażony w radianach.
ASIN(float_exp) (ODBC 1.0) Zwraca arcusus float_exp jako kąt wyrażony w radianach.
ATAN(float_exp) (ODBC 1.0) Zwraca arcus tangens float_exp jako kąt wyrażony w radianach.
ATAN2(float_exp1, float_exp2) (ODBC 2.0) Zwraca arcus tangens x i y współrzędnych określonych przez float_exp1 i float_exp2, odpowiednio jako kąt wyrażony w radianach.
CEILING(numeric_exp) (ODBC 1.0) Zwraca najmniejszą liczbę całkowitą większą lub równą numeric_exp. Wartość zwracana jest tego samego typu danych co parametr wejściowy.
COS(float_exp) (ODBC 1.0) Zwraca cosinus float_exp, gdzie float_exp jest kątem wyrażonym w radianach.
COT(float_exp) (ODBC 1.0) Zwraca cotangent float_exp, gdzie float_exp jest kątem wyrażonym w radianach.
STOPNIE(numeric_exp) (ODBC 2.0) Zwraca liczbę stopni przekonwertowanych z numeric_exp radianów.
EXP(float_exp) (ODBC 1.0) Zwraca wartość wykładniczą float_exp.
FLOOR(numeric_exp) (ODBC 1.0) Zwraca największą liczbę całkowitą mniejszą lub równą numeric_exp. Wartość zwracana jest tego samego typu danych co parametr wejściowy.
LOG(float_exp) (ODBC 1.0) Zwraca logarytm naturalny float_exp.
LOG10(float_exp) (ODBC 2.0) Zwraca logarytm podstawowy 10 float_exp.
MOD(integer_exp1, integer_exp2) (ODBC 1.0) Zwraca resztę (modulus) integer_exp1 podzielone przez integer_exp2.
PI( ) (ODBC 1.0) Zwraca stałą wartość pi jako wartość zmiennoprzecinkową.
POWER(numeric_exp, integer_exp) (ODBC 2.0) Zwraca wartość numeric_exp do potęgi integer_exp.
RADIANS(numeric_exp) (ODBC 2.0) Zwraca liczbę radianów przekonwertowanych z numeric_exp stopni.
RAND([integer_exp]) (ODBC 1.0) Zwraca losową wartość zmiennoprzecinkową przy użyciu integer_exp jako opcjonalną wartość inicjującą.
ROUND(numeric_exp, integer_exp) (ODBC 2.0) Zwraca numeric_exp zaokrąglone do integer_exp miejsca po prawej stronie przecinka dziesiętnego. Jeśli integer_exp jest ujemna, numeric_exp jest zaokrąglany do |integer_exp| miejsce po lewej stronie punktu dziesiętnego.
SIGN(numeric_exp) (ODBC 1.0) Zwraca wskaźnik znaku numeric_exp. Jeśli numeric_exp jest mniejsza niż zero, zwracana jest -1. Jeśli numeric_exp równa się zero, zwracana jest wartość 0. Jeśli numeric_exp jest większa niż zero, zwracana jest wartość 1.
SIN(float_exp) (ODBC 1.0) Zwraca sinus float_exp, gdzie float_exp jest kątem wyrażonym w radianach.
SQRT(float_exp) (ODBC 1.0) Zwraca pierwiastek kwadratowy float_exp.
TAN(float_exp) (ODBC 1.0) Zwraca tangens float_exp, gdzie float_exp jest kątem wyrażonym w radianach.
TRUNCATE(numeric_exp, integer_exp) (ODBC 2.0) Zwraca numeric_exp obcięte do integer_exp miejsca po prawej stronie przecinka dziesiętnego. Jeśli integer_exp jest ujemna, numeric_exp zostanie obcięta do |integer_exp| miejsce po lewej stronie punktu dziesiętnego.