Bagikan melalui


TRY_CONVERT (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Titik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

Mengembalikan nilai yang ditransmisikan ke jenis data yang ditentukan jika pemeran berhasil; jika tidak, mengembalikan NULL.

Konvensi sintaks transact-SQL

Sintaks

TRY_CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

Argumen

data_type

Jenis data yang akan ditransmisikan ekspresinya.

length

Bilangan bulat opsional yang menentukan panjang jenis data target, untuk jenis data yang memungkinkan panjang yang ditentukan pengguna. Nilai maksimum untuk panjang adalah 8.000 byte.

expression

Nilai yang akan dilemparkan.

gaya

Ekspresi bilangan bulat opsional yang menentukan bagaimana TRY_CONVERT fungsi akan menerjemahkan ekspresi.

gaya menerima nilai yang sama dengan CONVERT fungsi. Untuk informasi selengkapnya, lihat CAST dan CONVERT.

Nilai data_type menentukan rentang nilai yang dapat diterima. Jika gaya adalah NULL, maka TRY_CONVERT mengembalikan NULL.

Jenis yang dikembalikan

Mengembalikan nilai yang ditransmisikan ke jenis data yang ditentukan jika pemeran berhasil; jika tidak, mengembalikan NULL.

Keterangan

TRY_CONVERTmengambil nilai yang diteruskan ke nilai tersebut dan mencoba mengonversinya ke data_type yang ditentukan. Jika pemeran berhasil, TRY_CONVERT mengembalikan nilai sebagai data_type yang ditentukan; jika terjadi kesalahan, NULL dikembalikan. Namun jika Anda meminta konversi yang secara eksplisit tidak diizinkan, maka TRY_CONVERT gagal dengan kesalahan.

TRY_CONVERT adalah kata kunci yang dipesan, dimulai dengan tingkat 110kompatibilitas .

Fungsi ini mampu di-remote ke server yang memiliki SQL Server 2012 (11.x) dan versi yang lebih baru. Ini tidak di-remote ke server yang memiliki versi yang lebih lama dari SQL Server 2012 (11.x).

Contoh

J. TRY_CONVERT mengembalikan NULL

Contoh berikut menunjukkan yang TRY_CONVERT kembali NULL saat pemeran gagal.

SELECT
    CASE WHEN TRY_CONVERT(FLOAT, 'test') IS NULL
    THEN 'Cast failed'
    ELSE 'Cast succeeded'
END AS Result;
GO

Berikut set hasilnya.

Result  
------------  
Cast failed

Contoh berikut menunjukkan bahwa ekspresi harus dalam format yang diharapkan.

SET DATEFORMAT dmy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO

Berikut set hasilnya.

Result  
----------------------  
NULL

B. TRY_CONVERT gagal dengan kesalahan

Contoh berikut menunjukkan bahwa TRY_CONVERT mengembalikan kesalahan ketika cast secara eksplisit tidak diizinkan.

SELECT TRY_CONVERT(XML, 4) AS Result;
GO

Hasil dari pernyataan ini adalah kesalahan, karena bilangan bulat tidak dapat ditransmisikan ke dalam jenis data xml .

Explicit conversion from data type int to xml is not allowed.

C. TRY_CONVERT berhasil

Contoh ini menunjukkan bahwa ekspresi harus dalam format yang diharapkan.

SET DATEFORMAT mdy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO

Berikut set hasilnya.

Result
----------------------------------
2022-12-31 00:00:00.0000000