Share via


try_convert (Transact-sql)

Döküm başarırsa belirtilen veri türe değerini döndürür; Aksi takdirde null döndürür.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

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

Bağımsız değişkenler

  • data_type [ ( length ) ]
    Veri türü, içine dökme expression.

  • expression
    Döküm değeri.

  • style
    Belirten isteğe bağlı bir tamsayı ifade nasıl TRY_CONVERTişlevidir çevirmek için expression.

    styleaynı değerleri olarak kabul styleparametresi CONVERTişlevi. Daha fazla bilgi için, bkz. CAST ve CONVERT (Transact-SQL).

    Kabul edilebilir değerler aralığı değeri tarafından belirlenir data_type. Eğer stylesonra Is null, TRY_CONVERTnull döndürür.

Dönüş Türleri

Döküm başarırsa belirtilen veri türe değerini döndürür; Aksi takdirde null döndürür.

Açıklamalar

TRY_CONVERTkendisine iletilen değerini alır ve belirtilen dönüştürmeye çalışır data_type. Döküm işlemi başarılı olursa, TRY_CONVERTbelirtilen değeri döndürür data_type; bir hata oluşursa null döndürdü. Ancak bunu, sonra verilmez açıkça bir dönüşüm talep TRY_CONVERTbir hata ile başarısız.

TRY_CONVERTUyumluluk düzeyi 110 yeni bir anahtar sözcüktür.

Bu işlev bir versiyonu olan sunucularına uzak olma yeteneğine sahip SQL Server 2012ve yukarısı. Bir versiyonu olan sunucularına uzak olmayacak SQL Server 2012.

Örnekler

A.try_convert null döndürür

Aşağıdaki örnekte gösterilmiştir: cast başarısız olduğunda, try_convert null döndürür.

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

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

Sonuç kümesi buradadır.

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

(1 row(s) affected)

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

(1 row(s) affected)

Aşağıdaki örnek, ifade beklenen biçimde olması gerektiğini gösterir.

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

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

Sonuç kümesi buradadır.

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

(1 row(s) affected)

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

(1 row(s) affected)

B.try_convert bir hata ile başarısız olur.

Aşağıdaki örnekte gösterilmiştir: ne zaman dökme açıkça verilmez, try_convert bir hata döndürür.

SELECT TRY_CONVERT(xml, 4) AS Result;
GO

SELECT TRY_CONVERT(xml, 4) AS Result;
GO

Bu ifadenin sonucu bir hata nedeni, bir tamsayı, bir xml veri türüne atanamaz.

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

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

C.try_convert başarılı

Bu örnek, ifade beklenen biçimde olması gerektiğini gösterir.

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

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

Sonuç kümesi buradadır.

Result
----------------------------------
2010-12-31 00:00:00.0000000

(1 row(s) affected)

Result
----------------------------------
2010-12-31 00:00:00.0000000

(1 row(s) affected)

Ayrıca bkz.

Başvuru

CAST ve CONVERT (Transact-SQL)