Udostępnij za pomocą


Funkcje skalarne ODBC (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Możesz używać funkcji skalarnych ODBC w Transact-SQL instrukcjach. Te stwierdzenia są interpretowane przez SQL Server. Mogą być używane w procedurach przechowywanych oraz funkcjach definiowanych przez użytkownika. Należą do nich funkcje łańcuchowe, liczbowe, czasowe, date, interwałowe oraz systemowe.

Usage

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

Functions

Poniższe tabele wymieniają funkcje skalarne ODBC, które nie są duplikowane w Transact-SQL.

Funkcje ciągów

Funkcja Description
BIT_LENGTH( string_exp ) (ODBC 3.0) Zwraca długość wyrażenia ciągu w bitach.

Zwraca wewnętrzny rozmiar danego typu danych, bez konwersji string_exp na ciąg danych.
CONCAT( string_exp1,string_exp2) (ODBC 1.0) Zwraca ciąg znaków będący wynikiem łączenia string_exp2 do string_exp1. Powstały ciąg jest zależny od DBMS. Na przykład, jeśli kolumna reprezentowana przez string_exp1 zawierała wartość NULL, DB2 zwraca NULL, ale SQL Server zwraca ciąg niebędący NULL.
OCTET_LENGTH( string_exp ) (ODBC 3.0) Zwraca długość wyrażenia ciągu w bajtach. Wynikiem jest najmniejsza liczba całkowita nie mniejsza niż liczba bitów podzielona przez 8.

Zwraca wewnętrzny rozmiar danego typu danych, bez konwersji string_exp na ciąg danych.

Funkcja numeryczna

Funkcja Description
TRUNCATE( numeric_exp, integer_exp) (ODBC 2.0) Zwroty numeric_exp skracane do integer_exp pozycji po prawej stronie przecinka dziesiętnego. Jeśli integer_exp jest ujemny, numeric_exp jest obcięty do |integer_exp| pozycje po lewej stronie przecinka dziesiętnego.

Funkcje czasu, daty i interwału

Funkcja Description
CURRENT_DATE( ) (ODBC 3.0) Zwraca bieżącą datę.
CURDATE( ) (ODBC 3.0) Zwraca bieżącą datę.
CURRENT_TIME[( time-precision )] (ODBC 3.0) Zwraca aktualny czas lokalny. Argument precyzji czasowej określa dokładność sekund zwróconej wartości
CURTIME() (ODBC 3.0) Zwraca aktualny czas lokalny.
DAYNAME( date_exp ) (ODBC 2.0) Zwraca ciąg znaków zawierający nazwę dnia specyficzną dla źródła danych dla części dnia date_exp. Na przykład nazwa to Sunday to Saturday lub Sunday. do soboty. dla źródła danych używającego angielskiego. Nazwa to Sonntag przez Samstag, co oznacza źródło danych używające niemieckiego.
DAYOFMONTH( date_exp ) (ODBC 1.0) Zwraca dzień miesiąca, na podstawie pola miesiąca w date_exp, jako liczbę całkowitą. Wartość zwrotu mieści się w zakresie od 1 do 31.
DAYOFWEEK ( date_exp ) (ODBC 1.0) Zwraca dzień tygodnia na podstawie pola tygodnia w date_exp jako liczbę całkowitą. Wartość zwrotu mieści się w zakresie od 1 do 7, gdzie 1 oznacza niedzielę.
GODZINA( time_exp ) (ODBC 1.0) Zwraca godzinę, opartą na polu godzina w time_exp, jako wartość całkowitą w zakresie od 0 do 23.
MINUTA( time_exp ) (ODBC 1.0) Zwraca minutę, na podstawie pola minutowego w time_exp, jako wartość całkowitą w zakresie od 0 do 59.
DRUGI( time_exp ) (ODBC 1.0) Zwraca drugą wartość, opartą na drugim polu w time_exp, jako wartość całkowitą w zakresie od 0 do 59.
NAZWA MIESIĄCA( date_exp ) (ODBC 2.0) Zwraca ciąg znaków zawierający nazwę miesiąca specyficzną dla źródła danych dla części miesiąca date_exp. Na przykład nazwa to styczeń do grudnia lub styczeń do grudnia dla źródła danych używającego angielskiego. Nazwa to Januar do Dezember, co oznacza źródło danych używające niemieckiego.
QUARTER( date_exp ) (ODBC 1.0) Zwraca kwartał w date_exp jako wartość całkowitą w zakresie 1-4, gdzie 1 oznacza okres od 1 stycznia do 31 marca.
TYDZIEŃ( date_exp ) (ODBC 1.0) Zwraca tydzień roku, na podstawie pola tygodnia w date_exp, jako wartość całkowitą w zakresie od 1 do 53.

Przykłady

A. Użycie funkcji ODBC w procedurze przechowywanej

Poniższy przykład wykorzystuje funkcję ODBC w procedurze przechowywanej:

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

B. Wykorzystanie funkcji ODBC w funkcji zdefiniowanej przez użytkownika

Poniższy przykład wykorzystuje funkcję ODBC w funkcji zdefiniowanej przez użytkownika:

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  

Uwaga / Notatka

Microsoft Fabric obsługuje funkcje skalarne ODBC, ale obecnie nie obsługuje funkcji definiowanych przez użytkownika, które zwracają wartości, jak pokazano w Przykładzie B.

C. Użycie funkcji ODBC w instrukcjach SELECT

Następujące instrukcje SELECT wykorzystują funkcje 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  

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

D. Użycie funkcji ODBC w procedurze przechowywanej

Poniższy przykład wykorzystuje funkcję ODBC w procedurze przechowywanej:

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

E. Wykorzystanie funkcji ODBC w funkcji zdefiniowanej przez użytkownika

Poniższy przykład wykorzystuje funkcję ODBC w funkcji zdefiniowanej przez użytkownika:

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. Użycie funkcji ODBC w instrukcjach SELECT

Następujące instrukcje SELECT wykorzystują funkcje 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  

Zobacz też

Wbudowane funkcje (Transact-SQL)