Sdílet prostřednictvím


ODBC skalární funkce (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Ve Transact-SQL příkazech můžete použít ODBC Scalar Functions . Tyto výroky jsou interpretovány SQL Serverem. Lze je použít v uložených procedurách a uživatelsky definovaných funkcích. Patří sem řetězcové, číselné, časové, date, intervalové a systémové funkce.

Usage

SELECT {fn <function_name> [ (<argument>,....n) ] }

Functions

Následující tabulky uvádějí ODBC skalární funkce, které nejsou v Transact-SQL duplikovány.

Řetězcové funkce

Funkce Description
BIT_LENGTH( string_exp ) (ODBC 3.0) Vrací délku v bitech řetězcového výrazu.

Vrátí vnitřní velikost daného datového typu, aniž by string_exp převáděl na řetězec.
CONCAT( string_exp1,string_exp2) (ODBC 1.0) Vrátí řetězec znaků, který je výsledkem konkatenace string_exp2 do string_exp1. Výsledný řetězec je závislý na DBMS. Například pokud sloupec reprezentovaný string_exp1 obsahoval hodnotu NULL, DB2 by vrátil NULL, ale SQL Server by vrátil řetězec ne-NULL.
OCTET_LENGTH( string_exp ) (ODBC 3.0) Vrací délku řetězcového výrazu v bajtech. Výsledkem je nejméně celé číslo, které není menší než počet bitů děleno 8.

Vrátí vnitřní velikost daného datového typu, aniž by string_exp převáděl na řetězec.

Numerická funkce

Funkce Description
TRUNCATE( numeric_exp, integer_exp) (ODBC 2.0) Návraty numeric_exp zkráceny na integer_exp pozic vpravo od desetinné čárky. Pokud je integer_exp záporné, numeric_exp se zkrátí na |integer_exp| pozice vlevo od desetinné čárky.

Funkce času, data a intervalu

Funkce Description
CURRENT_DATE( ) (ODBC 3.0) Vrátí aktuální datum.
CURDATE( ) (ODBC 3.0) Vrátí aktuální datum.
CURRENT_TIME[( time-precision )] (ODBC 3.0) Vrací aktuální místní čas. Argument časové přesnosti určuje přesnost vrácené hodnoty v sekundách
CURTIME() (ODBC 3.0) Vrací aktuální místní čas.
DAYNAME( date_exp ) (ODBC 2.0) Vrátí znakový řetězec, který obsahuje název dne pro datový zdroj pro část dne date_exp. Například název je neděle až sobota nebo neděle. až do soboty. pro datový zdroj, který používá angličtinu. Název je Sonntag přes Samstag pro datový zdroj, který používá němčinu.
DAYOFMONTH( date_exp ) (ODBC 1.0) Vrací den v měsíci na základě pole měsíce v date_exp jako celé číslo. Hodnota návratu je v rozmezí 1-31.
DAYOFWEEK( date_exp ) (ODBC 1.0) Vrací den v týdnu na základě pole týdne v date_exp jako celé číslo. Návratová hodnota je v rozmezí 1-7, kde 1 představuje neděli.
HODINA( time_exp ) (ODBC 1.0) Vrací hodinu na základě pole hodiny v time_exp jako celočíselnou hodnotu v rozsahu 0–23.
MINUTA( time_exp ) (ODBC 1.0) Vrací minutu na základě pole minut v time_exp jako celočíselnou hodnotu v rozsahu 0–59.
DRUHÝ( time_exp ) (ODBC 1.0) Vrátí druhé číslo založené na druhém poli v time_exp jako celočíselnou hodnotu v rozsahu 0–59.
MONTHNAME( date_exp ) (ODBC 2.0) Vrátí znakový řetězec, který obsahuje název měsíce pro datový zdroj pro část měsíce date_exp. Například název je leden až prosinec nebo leden až prosinec pro zdroj dat, který používá angličtinu. Název je Januar až Dezember pro datový zdroj, který používá němčinu.
ČTVRTINA( date_exp ) (ODBC 1.0) Čtvrtletí v roce date_exp vrací jako celočíselnou hodnotu v rozmezí 1–4, kde 1 představuje období od 1. ledna do 31. března.
TÝDEN( date_exp ) (ODBC 1.0) Vrací týden v roce, založený na poli týdne v date_exp, jako celočíselnou hodnotu v rozmezí 1–53.

Examples

A. Použití funkce ODBC v uložené procedurě

Následující příklad používá funkci ODBC v uložené procedurě:

CREATE PROCEDURE dbo.ODBCprocedure  
(  
    @string_exp NVARCHAR(4000)  
)  
AS  
SELECT {fn OCTET_LENGTH( @string_exp )};  

B. Použití funkce ODBC v uživatelsky definované funkci

Následující příklad používá funkci ODBC v uživatelsky definované funkci:

CREATE FUNCTION dbo.ODBCudf  
(  
    @string_exp NVARCHAR(4000)  
)  
RETURNS INT  
AS  
BEGIN  
DECLARE @len INT  
SET @len = (SELECT {fn OCTET_LENGTH( @string_exp )})  
RETURN(@len)  
END ;  
GO
SELECT dbo.ODBCudf('Returns the length.');  
--Returns 38  

Poznámka:

Microsoft Fabric podporuje ODBC skalární funkce, ale v současnosti nepodporuje uživatelsky definované funkce, které vracejí hodnoty, jak je ukázáno v Příkladu B.

C. Použití funkcí ODBC v příkazech SELECT

Následující příkazy SELECT používají funkce ODBC:

DECLARE @string_exp NVARCHAR(4000) = 'Returns the length.';  
SELECT {fn BIT_LENGTH( @string_exp )};  
-- Returns 304  
SELECT {fn OCTET_LENGTH( @string_exp )};  
-- Returns 38  
  
SELECT {fn CONCAT( 'CONCAT ','returns a character string')};  
-- Returns CONCAT returns a character string  
SELECT {fn TRUNCATE( 100.123456, 4)};  
-- Returns 100.123400  
SELECT {fn CURRENT_DATE( )};  
-- Returns 2007-04-20  
SELECT {fn CURRENT_TIME(6)};  
-- Returns 10:27:11.973000  
  
DECLARE @date_exp NVARCHAR(30) = '2007-04-21 01:01:01.1234567';  
SELECT {fn DAYNAME( @date_exp )};  
-- Returns Saturday  
SELECT {fn DAYOFMONTH( @date_exp )};  
-- Returns 21  
SELECT {fn DAYOFWEEK( @date_exp )};  
-- Returns 7  
SELECT {fn HOUR( @date_exp)};  
-- Returns 1   
SELECT {fn MINUTE( @date_exp )};  
-- Returns 1  
SELECT {fn SECOND( @date_exp )};  
-- Returns 1  
SELECT {fn MONTHNAME( @date_exp )};  
-- Returns April  
SELECT {fn QUARTER( @date_exp )};  
-- Returns 2  
SELECT {fn WEEK( @date_exp )};  
-- Returns 16  

Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)

D. Použití funkce ODBC v uložené procedurě

Následující příklad používá funkci ODBC v uložené procedurě:

CREATE PROCEDURE dbo.ODBCprocedure  
(  
    @string_exp NVARCHAR(4000)  
)  
AS  
SELECT {fn BIT_LENGTH( @string_exp )};  

E. Použití funkce ODBC v uživatelsky definované funkci

Následující příklad používá funkci ODBC v uživatelsky definované funkci:

CREATE FUNCTION dbo.ODBCudf  
(  
    @string_exp NVARCHAR(4000)  
)  
RETURNS INT  
AS  
BEGIN  
DECLARE @len INT  
SET @len = (SELECT {fn BIT_LENGTH( @string_exp )})  
RETURN(@len)  
END ;  
GO
SELECT dbo.ODBCudf('Returns the length in bits.');  
--Returns 432  

F. Použití funkcí ODBC v příkazech SELECT

Následující příkazy SELECT používají funkce ODBC:

DECLARE @string_exp NVARCHAR(4000) = 'Returns the length.';  
SELECT {fn BIT_LENGTH( @string_exp )};  
-- Returns 304  
  
SELECT {fn CONCAT( 'CONCAT ','returns a character string')};  
-- Returns CONCAT returns a character string  
SELECT {fn CURRENT_DATE( )};  
-- Returns today's date  
SELECT {fn CURRENT_TIME(6)};  
-- Returns the time  
  
DECLARE @date_exp NVARCHAR(30) = '2007-04-21 01:01:01.1234567';  
SELECT {fn DAYNAME( @date_exp )};  
-- Returns Saturday  
SELECT {fn DAYOFMONTH( @date_exp )};  
-- Returns 21  
SELECT {fn DAYOFWEEK( @date_exp )};  
-- Returns 7  
SELECT {fn HOUR( @date_exp)};  
-- Returns 1   
SELECT {fn MINUTE( @date_exp )};  
-- Returns 1  
SELECT {fn SECOND( @date_exp )};  
-- Returns 1  
SELECT {fn MONTHNAME( @date_exp )};  
-- Returns April  
SELECT {fn QUARTER( @date_exp )};  
-- Returns 2  
SELECT {fn WEEK( @date_exp )};  
-- Returns 16  

Viz také

Předdefinované funkce (Transact-SQL)