ODBC-skalärfunktioner (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Du kan använda ODBC Scalar Functions i Transact-SQL satser. Dessa satser tolkas av SQL Server. De kan användas i lagrade procedurer och användardefinierade funktioner. Dessa inkluderar sträng-, numeriska, tids-, datum-, intervall- och systemfunktioner.

Usage

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

Functions

Följande tabeller listar ODBC-skalärfunktioner som inte dupliceras i Transact-SQL.

Strängfunktioner

Funktion Description
BIT_LENGTH( string_exp ) (ODBC 3.0) Returnerar längden i bitar av stränguttrycket.

Returnerar den interna storleken för den givna datatypen utan att konvertera string_exp till sträng.
CONCAT( string_exp1,string_exp2) (ODBC 1.0) Returnerar en teckensträng som är resultatet av att string_exp2 konkateneras till string_exp1. Den resulterande strängen är beroende av DBMS. Till exempel, om kolumnen som representeras av string_exp1 innehöll ett NULL-värde, skulle DB2 returnera NULL men SQL Server skulle returnera den icke-NULL-strängen.
OCTET_LENGTH( string_exp ) (ODBC 3.0) Returnerar längden i byte av stränguttrycket. Resultatet är det minsta heltalet inte mindre än antalet bitar dividerat med 8.

Returnerar den interna storleken för den givna datatypen utan att konvertera string_exp till sträng.

Numerisk funktion

Funktion Description
TRUNCATE( numeric_exp, integer_exp) (ODBC 2.0) Returer numeric_exp trunkerade till integer_exp positioner höger om decimalpunkten. Om integer_exp är negativ avkortas numeric_exp till |integer_exp| positioner till vänster om decimalpunkten.

Tids-, datum- och intervallfunktioner

Funktion Description
CURRENT_DATE( ) (ODBC 3.0) Returnerar aktuellt datum.
CURDATE( ) (ODBC 3.0) Returnerar aktuellt datum.
CURRENT_TIME[( time-precision )] (ODBC 3.0) Returnerar aktuell lokal tid. Tidsprecisionsargumentet bestämmer sekundprecisionen för det returnerade värdet
CURTIME() (ODBC 3.0) Returnerar aktuell lokal tid.
DAYNAME( date_exp ) (ODBC 2.0) Returnerar en teckensträng som innehåller dagens datakällaspecifika namn för dagens del av date_exp. Till exempel heter det Sunday till Saturday eller Sun. genom lördag. för en datakälla som använder engelska. Namnet är Sonntag genom Samstag för en datakälla som använder tyska.
MÅNADSDAG( date_exp ) (ODBC 1.0) Returnerar månadsdagen, baserat på månadsfältet i date_exp, som ett heltal. Avkastningsvärdet ligger i intervallet 1-31.
VECKODAG( date_exp ) (ODBC 1.0) Returnerar veckodagen baserad på veckofältet i date_exp som ett heltal. Avkastningsvärdet ligger i intervallet 1-7, där 1 representerar söndag.
TIMME( time_exp ) (ODBC 1.0) Returnerar tim, baserat på timfältet i time_exp, som ett heltalsvärde i intervallet 0–23.
MINUT( time_exp ) (ODBC 1.0) Returnerar minuten, baserat på minutfältet i time_exp, som ett heltalsvärde i intervallet 0–59.
ANDRA( time_exp ) (ODBC 1.0) Returnerar det andra, baserat på det andra fältet i time_exp, som ett heltalsvärde i intervallet 0–59.
MÅNADSNAMN( date_exp ) (ODBC 2.0) Returnerar en teckensträng som innehåller det datakällspecifika namnet på månaden för månadsdelen av date_exp. Till exempel heter det januari till december eller januari till december för en datakälla som använder engelska. Namnet är januari till december för en datakälla som använder tyska.
KVART (date_exp) (ODBC 1.0) Returnerar kvartalet i date_exp som ett heltalsvärde i intervallet 1–4, där 1 representerar 1 januari till 31 mars.
VECKA( date_exp ) (ODBC 1.0) Returnerar veckans vecka, baserat på veckofältet i date_exp, som ett heltalsvärde i intervallet 1-53.

Examples

A. Att använda en ODBC-funktion i en lagrad procedur

Följande exempel använder en ODBC-funktion i en lagrad procedur:

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

B. Att använda en ODBC-funktion i en användardefinierad funktion

Följande exempel använder en ODBC-funktion i en användardefinierad funktion:

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  

Anmärkning

Microsoft Fabric stöder ODBC-skalära funktioner, men stöder för närvarande inte användardefinierade funktioner som returnerar värden, som visas i exempel B.

C. Att använda en ODBC funktioner i SELECT-satser

Följande SELECT-satser använder ODBC-funktioner:

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  

Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)

D. Att använda en ODBC-funktion i en lagrad procedur

Följande exempel använder en ODBC-funktion i en lagrad procedur:

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

E. Att använda en ODBC-funktion i en användardefinierad funktion

Följande exempel använder en ODBC-funktion i en användardefinierad funktion:

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. Att använda en ODBC funktioner i SELECT-satser

Följande SELECT-satser använder ODBC-funktioner:

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  

Se även

Inbyggda funktioner (Transact-SQL)