Di SQL Server, CONVERT()
fungsi mengonversi ekspresi dari satu tipe data ke tipe data lainnya.
Berikut ini ikhtisar singkat tentang fungsi dengan contoh.
Sintaks
Sintaksnya seperti ini:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Dimana expression
adalah ekspresi yang akan dikonversi, data_type
adalah tipe data baru, dan length
adalah panjang opsional untuk tipe data baru.
style
opsional argumen dapat digunakan untuk menentukan bagaimana fungsi harus menerjemahkan expression
argumen. Misalnya, Anda dapat menggunakan argumen ini untuk menentukan format tanggal.
Contoh
Berikut ini contoh mengubah string menjadi desimal:
SELECT CONVERT(DECIMAL(5,2), '007');
Hasil:
7.00
String hingga Tanggal
Berikut ini contoh casting string ke tanggal:
SELECT CONVERT(date, '09 Feb 2030');
Hasil:
2030-02-09
Dalam hal ini CONVERT()
function dapat menentukan bagian tanggal yang mana karena saya memberikan tanggal dalam format yang dikenalinya.
Meneruskan nilai yang tidak dapat diberikan sebagai tanggal akan menyebabkan kesalahan:
SELECT CONVERT(date, 'My Birthday');
Hasil:
Msg 241, Level 16, State 1, Line 1 Conversion failed when converting date and/or time from character string.
Lokal
Bahasa sesi saat ini dapat membuat perbedaan dalam interpretasi tanggal.
Inilah yang terjadi saat menggunakan bahasa Inggris:
SET LANGUAGE British;
SELECT CONVERT(date, '09/02/2030');
Hasil:
2030-02-09
Dalam hal ini, tanggal tersebut ditafsirkan sebagai hari kesembilan Februari.
Mari kita ubah bahasanya menjadi us_English
:
SET LANGUAGE us_English;
SELECT CONVERT(date, '09/02/2030');
Hasil:
2030-09-02
Kali ini menafsirkan tanggal sebagai hari kedua bulan September.
style
Argumen
Kita dapat menggunakan style
opsional argumen untuk menentukan bagaimana ekspresi harus diterjemahkan.
Contoh:
SET LANGUAGE British;
SELECT
CONVERT(date, '09/02/2030') AS "British",
CONVERT(date, '09/02/2030', 101) AS "US",
CONVERT(date, '09/02/30', 1) AS "US (short)",
CONVERT(date, '20300902', 112) AS "ISO",
CONVERT(date, '09.02.2030', 104) AS "German";
Hasil:
+------------+------------+--------------+------------+------------+ | British | US | US (short) | ISO | German | |------------+------------+--------------+------------+------------| | 2030-02-09 | 2030-09-02 | 2030-09-02 | 2030-09-02 | 2030-02-09 | +------------+------------+--------------+------------+------------+
Penggabungan String
Berikut ini contoh casting nilai numerik ke string untuk menggabungkan nilai dengan string:
SELECT 'Age: ' + CONVERT(varchar(10), 27);
Hasil:
Age: 27
Inilah yang terjadi jika kita tidak mengonversinya terlebih dahulu:
SELECT 'Age: ' + 27;
Hasil:
Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value 'Age: ' to data type int.
Saat mencoba menggabungkan dua nilai dengan tipe data yang berbeda, SQL Server perlu secara implisit mengonversi salah satu nilai untuk menggunakan tipe data yang lain, sehingga keduanya adalah tipe data yang sama sebelum dapat melakukan penggabungan. Ini mengikuti aturan prioritas tipe data untuk melakukan konversi ini.
Di SQL Server, int
tipe data memiliki prioritas lebih tinggi daripada varchar
.
Oleh karena itu, dalam contoh di atas, SQL Server mencoba mengonversi string menjadi integer, tetapi gagal karena string tidak dapat dikonversi menjadi integer.
Memotong Teks
Satu trik kecil praktis yang dapat kita lakukan dengan CONVERT()
fungsinya adalah untuk memotong string yang lebih panjang ke panjang yang lebih mudah dibaca.
Berikut ini contoh pemotongan teks yang dipilih dari tabel database:
SELECT
ProductName,
CONVERT(varchar(20), ProductName) AS Truncated
FROM Products;
Hasil:
+---------------------------------+----------------------+ | ProductName | Truncated | |---------------------------------+----------------------| | Left handed screwdriver | Left handed screwdri | | Long Weight (blue) | Long Weight (blue) | | Long Weight (green) | Long Weight (green) | | Sledge Hammer | Sledge Hammer | | Chainsaw | Chainsaw | | Straw Dog Box | Straw Dog Box | | Bottomless Coffee Mugs (4 Pack) | Bottomless Coffee Mu | | Right handed screwdriver | Right handed screwdr | +---------------------------------+----------------------+
Informasi Lebih Lanjut
CONVERT()
fungsi bekerja dengan cara yang mirip dengan CAST()
fungsi, dan banyak konversi data dapat dilakukan menggunakan salah satunya. Konon, ada perbedaan di antara mereka.
Lihat dokumentasi Microsoft untuk CAST()
dan CONVERT()
untuk informasi lebih detail tentang penggunaan fungsi ini.