Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

CONVERT() di SQL Server

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat Kolom Terhitung menggunakan data dari tabel lain

  2. Cara mendapatkan semua Tabel dengan atau tanpa Batasan Kunci Utama di Database Sql Server - Tutorial SQL Server / TSQL 59

  3. Cara menggabungkan teks dari beberapa baris menjadi satu string teks di SQL Server

  4. Cara Mengatur Bahasa Default untuk Semua Login Baru di SQL Server (T-SQL)

  5. Pernyataan INSERT bertentangan dengan batasan FOREIGN KEY - SQL Server