ODBC スカラー関数 (Transact-SQL)ODBC Scalar Functions (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

Transact-SQLTransact-SQL ステートメントでは、ODBC スカラー関数を使用できます。You can use ODBC Scalar Functions in Transact-SQLTransact-SQL statements. これらのステートメントは、SQL ServerSQL Server によって解釈されます。These statements are interpreted by SQL ServerSQL Server. 具体的には、ストアド プロシージャやユーザー定義関数の中で、They can be used in stored procedures and user-defined functions. 文字列、数値、時刻、日付、間隔を扱う関数のほか、システム関数を使用することができます。These include string, numeric, time, date, interval, and system functions.

使用法Usage

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

関数Functions

次の表は、同等の機能が Transact-SQLTransact-SQL に存在しない ODBC スカラー関数をまとめたものです。The following tables list ODBC scalar functions that aren't duplicated in Transact-SQLTransact-SQL.

文字列関数String Functions

機能Function 説明Description
BIT_LENGTH(string_exp) (ODBC 3.0)BIT_LENGTH( string_exp ) (ODBC 3.0) 文字列式の長さ (ビット単位) を返します。Returns the length in bits of the string expression.

string_exp を文字列に変換せず、指定されたデータ型の内部サイズを返します。Returns the internal size of the given data type, without converting string_exp to string.
CONCAT(string_exp1,string_exp2) (ODBC 1.0)CONCAT( string_exp1,string_exp2) (ODBC 1.0) string_exp1 に対して string_exp2 を連結した結果の文字列を返します。Returns a character string that is the result of concatenating string_exp2 to string_exp1. 結果の文字列は DBMS に依存します。The resulting string is DBMS-dependent. たとえば、string_exp1 に指定された列に NULL 値が格納されていた場合、DB2 では NULL が返されますが、SQL ServerSQL Server では非 NULL 文字列が返されます。For example, if the column represented by string_exp1 contained a NULL value, DB2 would return NULL but SQL ServerSQL Server would return the non-NULL string.
OCTET_LENGTH( string_exp ) (ODBC 3.0)OCTET_LENGTH( string_exp ) (ODBC 3.0) 文字列式の長さ (バイト単位) を返します。Returns the length in bytes of the string expression. 結果は、ビット数を 8 で割った値以上の最小の整数になります。The result is the smallest integer not less than the number of bits divided by 8.

string_exp を文字列に変換せず、指定されたデータ型の内部サイズを返します。Returns the internal size of the given data type, without converting string_exp to string.

数値関数Numeric Function

機能Function 説明Description
TRUNCATE( numeric_exp, integer_exp) (ODBC 2.0)TRUNCATE( numeric_exp, integer_exp) (ODBC 2.0) numeric_exp を、小数点の右側の integer_exp 桁までに切り詰めて返します。Returns numeric_exp truncated to integer_exp positions right of the decimal point. integer_exp が負数の場合、numeric_exp は、小数点の左側 |integer_exp| 桁に切り詰められます。If integer_exp is negative, numeric_exp is truncated to |integer_exp| positions to the left of the decimal point.

時刻、日付、および間隔を扱う関数Time, Date, and Interval Functions

機能Function 説明Description
CURRENT_DATE( ) (ODBC 3.0)CURRENT_DATE( ) (ODBC 3.0) 現在の日付を返します。Returns the current date.
CURDATE( ) (ODBC 3.0)CURDATE( ) (ODBC 3.0) 現在の日付を返します。Returns the current date.
CURRENT_TIME[( time-precision )] (ODBC 3.0)CURRENT_TIME[( time-precision )] (ODBC 3.0) 現在のローカル時間を返します。Returns the current local time. time-precision 引数には、返される値の秒の有効桁数を指定しますThe time-precision argument determines the seconds precision of the returned value
CURTIME() (ODBC 3.0)CURTIME() (ODBC 3.0) 現在のローカル時間を返します。Returns the current local time.
DAYNAME(date_exp) (ODBC 2.0)DAYNAME( date_exp ) (ODBC 2.0) date_exp の日の部分に対するデータ ソース固有の曜日名を含む文字列を返します。Returns a character string that contains the data-source-specific name of the day for the day part of date_exp. たとえば、名前 Sunday - Saturday、または Sun.For example, the name is Sunday through Saturday or Sun. - Sat.through Sat. は、英語を使用するデータ ソースの場合です。for a data source that uses English. ドイツ語を使用するデータ ソースの場合の名前は、Sonntag - Samstag などです。The name is Sonntag through Samstag for a data source that uses German.
DAYOFMONTH(date_exp) (ODBC 1.0)DAYOFMONTH( date_exp ) (ODBC 1.0) date_exp の月部分に基づき、月初から数えた日を整数値として返します。Returns the day of the month, based on the month field in date_exp, as an integer. 戻り値の範囲は、1 - 31 です。The return value is in the range of 1-31.
DAYOFWEEK(date_exp) (ODBC 1.0)DAYOFWEEK( date_exp ) (ODBC 1.0) date_exp の週部分に基づき、週初から数えた日を整数値として返します。Returns the day of the week based on the week field in date_exp as an integer. 戻り値の範囲は 1 - 7 で、1 は日曜日を表します。The return value is in the range of 1-7, where 1 represents Sunday.
HOUR(time_exp) (ODBC 1.0)HOUR( time_exp ) (ODBC 1.0) time_exp の時部分に基づき、対応する時刻を 0 から 23 の整数値として返します。Returns the hour, based on the hour field in time_exp, as an integer value in the range of 0-23.
MINUTE( time_exp ) (ODBC 1.0)MINUTE( time_exp ) (ODBC 1.0) time_exp の分部分に基づき、対応する分を 0 から 59 の整数値として返します。Returns the minute, based on the minute field in time_exp, as an integer value in the range of 0-59.
SECOND( time_exp ) (ODBC 1.0)SECOND( time_exp ) (ODBC 1.0) time_exp の秒部分に基づき、対応する秒を 0 から 59 の整数値として返します。Returns the second, based on the second field in time_exp, as an integer value in the range of 0-59.
MONTHNAME( date_exp ) (ODBC 2.0)MONTHNAME( date_exp ) (ODBC 2.0) date_exp の月の部分に対するデータ ソース固有の月名を含む文字列を返します。Returns a character string that contains the data-source-specific name of the month for the month part of date_exp. たとえば、英語を使用するデータ ソースの場合、名前は January - December または Jan. - Dec. です。For example, the name is January through December or Jan. through Dec. for a data source that uses English. ドイツ語を使用するデータ ソースの場合の名前は、Januar - Dezember などです。The name is Januar through Dezember for a data source that uses German.
QUARTER( date_exp ) (ODBC 1.0)QUARTER( date_exp ) (ODBC 1.0) date_exp の四半期を 1 から 4 の整数値として返します。1 は、1 月 1 日から 3 月 31 日を表します。Returns the quarter in date_exp as an integer value in the range of 1-4, where 1 represents January 1 through March 31.
WEEK( date_exp ) (ODBC 1.0)WEEK( date_exp ) (ODBC 1.0) date_exp の週部分に基づき、年頭から数えた週を 1 から 53 の整数値として返します。Returns the week of the year, based on the week field in date_exp, as an integer value in the range of 1-53.

Examples

A.A. ODBC 関数をストアド プロシージャで使用するUsing an ODBC function in a stored procedure

次の例では、ストアド プロシージャで、ODBC 関数を使用します。The following example uses an ODBC function in a stored procedure:

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

B.B. ODBC 関数をユーザー定義関数で使用するUsing an ODBC Function in a user-defined function

次の例では、ODBC 関数をユーザー定義関数で使用しています。The following example uses an ODBC function in a user-defined function:

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 ;  
  
SELECT dbo.ODBCudf('Returns the length.');  
--Returns 38  

C.C. ODBC 関数を SELECT ステートメントで使用するUsing an ODBC functions in SELECT statements

次の SELECT ステートメントでは、ODBC 関数が使用されています。The following SELECT statements use ODBC functions:

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  

例: Azure Synapse AnalyticsAzure Synapse AnalyticsParallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse AnalyticsAzure Synapse Analytics and Parallel Data WarehouseParallel Data Warehouse

D.D. ODBC 関数をストアド プロシージャで使用するUsing an ODBC function in a stored procedure

次の例では、ストアド プロシージャで、ODBC 関数を使用します。The following example uses an ODBC function in a stored procedure:

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

E.E. ODBC 関数をユーザー定義関数で使用するUsing an ODBC Function in a user-defined function

次の例では、ODBC 関数をユーザー定義関数で使用しています。The following example uses an ODBC function in a user-defined function:

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 ;  
  
SELECT dbo.ODBCudf('Returns the length in bits.');  
--Returns 432  

F.F. ODBC 関数を SELECT ステートメントで使用するUsing an ODBC functions in SELECT statements

次の SELECT ステートメントでは、ODBC 関数が使用されています。The following SELECT statements use ODBC functions:

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  

参照See Also

組み込み関数 (Transact-SQL)Built-in Functions (Transact-SQL)