Fungsi Skalar ODBC (Transact-SQL)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform System (PDW)
Anda dapat menggunakan Fungsi Skalar ODBC dalam pernyataan Transact-SQL. Pernyataan-pernyataan ini ditafsirkan oleh SQL Server. Mereka dapat digunakan dalam prosedur tersimpan dan fungsi yang ditentukan pengguna. Ini termasuk fungsi string, numerik, waktu, tanggal, interval, dan sistem.
Penggunaan
SELECT {fn <function_name> [ (<argument>,....n) ] }
Fungsi
Tabel berikut mencantumkan fungsi skalar ODBC yang tidak diduplikasi dalam transact-SQL.
Fungsi String
| Fungsi | Deskripsi |
|---|---|
| BIT_LENGTH( string_exp ) (ODBC 3.0) | Mengembalikan panjang dalam bit ekspresi string. Mengembalikan ukuran internal dari jenis data yang diberikan, tanpa mengonversi string_exp menjadi string. |
| CONCAT( string_exp1,string_exp2) (ODBC 1.0) | Mengembalikan string karakter yang merupakan hasil dari menggabungkan string_exp2 ke string_exp1. String yang dihasilkan bergantung pada DBMS. Misalnya, jika kolom yang diwakili oleh string_exp1 berisi nilai NULL, DB2 akan mengembalikan NULL tetapi SQL Server akan mengembalikan string non-NULL. |
| OCTET_LENGTH( string_exp ) (ODBC 3.0) | Mengembalikan panjang dalam byte ekspresi string. Hasilnya adalah bilangan bulat terkecil tidak kurang dari jumlah bit yang dibagi 8. Mengembalikan ukuran internal dari jenis data yang diberikan, tanpa mengonversi string_exp menjadi string. |
Fungsi Numerik
| Fungsi | Deskripsi |
|---|---|
| TRUNCATE( numeric_exp, integer_exp) (ODBC 2.0) | Mengembalikan numeric_exp terpotong ke kanan posisi integer_exp dari titik desimal. Jika integer_exp negatif, numeric_exp dipotong menjadi |integer_exp| posisi di sebelah kiri titik desimal. |
Fungsi Waktu, Tanggal, dan Interval
| Fungsi | Deskripsi |
|---|---|
| CURRENT_DATE( ) (ODBC 3.0) | Mengembalikan tanggal saat ini. |
| CURDATE( ) (ODBC 3.0) | Mengembalikan tanggal saat ini. |
[( time-precision )] CURRENT_TIME (ODBC 3.0) |
Mengembalikan waktu lokal saat ini. Argumen presisi waktu menentukan presisi detik dari nilai yang dikembalikan |
| CURTIME() (ODBC 3.0) | Mengembalikan waktu lokal saat ini. |
| DAYNAME( date_exp ) (ODBC 2.0) | Mengembalikan string karakter yang berisi nama khusus sumber data hari itu untuk bagian hari date_exp. Misalnya, namanya adalah Minggu hingga Sabtu atau Matahari. melalui Sat. untuk sumber data yang menggunakan bahasa Inggris. Namanya Sonntag melalui Samstag untuk sumber data yang menggunakan bahasa Jerman. |
| DAYOFMONTH( date_exp ) (ODBC 1.0) | Mengembalikan hari dalam sebulan, berdasarkan bidang bulan dalam date_exp, sebagai bilangan bulat. Nilai yang dikembalikan berada dalam rentang 1-31. |
| DAYOFWEEK( date_exp ) (ODBC 1.0) | Mengembalikan hari dalam seminggu berdasarkan bidang minggu dalam date_exp sebagai bilangan bulat. Nilai yang dikembalikan berada dalam rentang 1-7, di mana 1 mewakili Hari Minggu. |
| HOUR( time_exp ) (ODBC 1.0) | Mengembalikan jam, berdasarkan bidang jam dalam time_exp, sebagai nilai bilangan bulat dalam rentang 0-23. |
| MINUTE( time_exp ) (ODBC 1.0) | Mengembalikan menit, berdasarkan bidang menit di time_exp, sebagai nilai bilangan bulat dalam rentang 0-59. |
| SECOND( time_exp ) (ODBC 1.0) | Mengembalikan yang kedua, berdasarkan bidang kedua dalam time_exp, sebagai nilai bilangan bulat dalam rentang 0-59. |
| MONTHNAME( date_exp ) (ODBC 2.0) | Mengembalikan string karakter yang berisi nama khusus sumber data bulan untuk bagian bulan date_exp. Misalnya, namanya adalah Januari hingga Desember atau Jan. hingga Des. untuk sumber data yang menggunakan bahasa Inggris. Namanya adalah Januari hingga Dezember untuk sumber data yang menggunakan bahasa Jerman. |
| QUARTER( date_exp ) (ODBC 1.0) | Mengembalikan kuartal dalam date_exp sebagai nilai bilangan bulat dalam rentang 1-4, di mana 1 menunjukkan 1 Januari hingga 31 Maret. |
| WEEK( date_exp ) (ODBC 1.0) | Mengembalikan minggu dalam setahun, berdasarkan bidang minggu dalam date_exp, sebagai nilai bilangan bulat dalam rentang 1-53. |
Contoh
A. Menggunakan fungsi ODBC dalam prosedur tersimpan
Contoh berikut menggunakan fungsi ODBC dalam prosedur tersimpan:
CREATE PROCEDURE dbo.ODBCprocedure
(
@string_exp NVARCHAR(4000)
)
AS
SELECT {fn OCTET_LENGTH( @string_exp )};
B. Menggunakan Fungsi ODBC dalam fungsi yang ditentukan pengguna
Contoh berikut menggunakan fungsi ODBC dalam fungsi yang ditentukan pengguna:
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
C. Menggunakan fungsi ODBC dalam pernyataan SELECT
Pernyataan SELECT berikut menggunakan fungsi 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
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
D. Menggunakan fungsi ODBC dalam prosedur tersimpan
Contoh berikut menggunakan fungsi ODBC dalam prosedur tersimpan:
CREATE PROCEDURE dbo.ODBCprocedure
(
@string_exp NVARCHAR(4000)
)
AS
SELECT {fn BIT_LENGTH( @string_exp )};
E. Menggunakan Fungsi ODBC dalam fungsi yang ditentukan pengguna
Contoh berikut menggunakan fungsi ODBC dalam fungsi yang ditentukan pengguna:
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. Menggunakan fungsi ODBC dalam pernyataan SELECT
Pernyataan SELECT berikut menggunakan fungsi 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