Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza 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