Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
Visszaad egy értéket a megadott adattípusba, ha a cast sikeres lesz; egyébként visszaadja NULL.
Transact-SQL szintaxis konvenciók
Szemantika
TRY_CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Arguments
data_type
Az adattípus, amelybe a kifejezést be szeretné adni.
length
Nem kötelező egész szám, amely megadja a céladattípus hosszát olyan adattípusok esetében, amelyek lehetővé teszik a felhasználó által megadott hosszt. A maximális hossz értéke 8 000 bájt.
kifejezés
A varázslat értéke.
stílus
Opcionális egész számkifejezés, amely meghatározza a függvény fordításának TRY_CONVERT.
a stílus ugyanazokat az értékeket fogadja, mint a függvény CONVERT. További információ: CAST és CONVERT.
A data_type értéke határozza meg az elfogadható értékek tartományát. Ha a stílusNULL, akkor TRY_CONVERT visszaadja NULL.
Visszatérési típusok
Visszaad egy értéket a megadott adattípusba, ha a cast sikeres lesz; egyébként visszaadja NULL.
Megjegyzések
TRY_CONVERT a megadott értéket veszi át, és megpróbálja átalakítani a megadott data_type. Ha a dobás sikeres, TRY_CONVERT a megadott értéket adja vissza a megadott data_type értékének; ha hiba történik, NULL visszakerül. Ha azonban olyan átalakítást kér, amely kifejezetten nem engedélyezett, hibaüzenettel TRY_CONVERT meghiúsul.
TRY_CONVERT egy fenntartott kulcsszó, amely a kompatibilitási szinttől 110kezdve .
Ez a funkció képes távolról telepíthető olyan szerverekre, amelyek SQL Server 2012 (11.x) és újabb verziókkal rendelkeznek. Nem olyan szerverekre van telepítve, amelyeknek korábbi verziójuk van, mint SQL Server 2012 (11.x).
Példák
A. TRY_CONVERT NULL-t ad vissza
A következő példa azt mutatja, hogy
TRY_CONVERTa dobás sikertelenségével visszatérNULL.SELECT CASE WHEN TRY_CONVERT(FLOAT, 'test') IS NULL THEN 'Cast failed' ELSE 'Cast succeeded' END AS Result; GOEz a lekérdezés az eredményt adja:
Cast failed.Az alábbi példa bemutatja, hogy a kifejezésnek a várt formátumban kell lennie.
SET DATEFORMAT dmy; SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result; GOEz a lekérdezés az eredményt adja:
NULL.
B. TRY_CONVERT hibával bukik el
Az alábbi példa azt mutatja be, hogy TRY_CONVERT hibát ad vissza, ha a leadás kifejezetten nem engedélyezett.
SELECT TRY_CONVERT(XML, 4) AS Result;
GO
Ennek az állításnak az eredménye hiba, mert egy egész számot nem lehet az xml adattípusba önteni.
Explicit conversion from data type int to xml is not allowed.
C. TRY_CONVERT sikerrel jár
Ez a példa azt mutatja be, hogy a kifejezésnek a várt formátumban kell lennie.
SET DATEFORMAT mdy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO
Ez a lekérdezés az eredményt adja: 2022-12-31 00:00:00.0000000.