Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Vrátí přetypování hodnoty na zadaný datový typ, pokud přetypování proběhne úspěšně; v opačném případě vrátí hodnotu null.
Syntaxe
TRY_CAST ( expression AS data_type [ ( length ) ] )
Arguments
expression
Určuje libovolný platný výraz, který se má přetypovat.
data_type
Datový typ, do kterého se má výraz přetypovat. Tato hodnota určuje rozsah přijatelných hodnot.
length
Volitelné celé číslo, které určuje délku cílového datového typu.
Návratové typy
Vrátí přetypování hodnoty na zadaný datový typ, pokud přetypování proběhne úspěšně; v opačném případě vrátí hodnotu null.
Poznámky
TRY_CAST vezme hodnotu předanou do ní a pokusí se ji převést na zadanou data_type. Pokud je přetypování úspěšné, TRY_CAST vrátí hodnotu jako zadanou data_type; pokud dojde k chybě, vrátí se hodnota null. Pokud ale požádáte o převod, který explicitně není povolený, dojde TRY_CAST k chybě.
TRY_CAST není nové rezervované klíčové slovo a je k dispozici ve všech úrovních kompatibility.
TRY_CAST má stejnou sémantiku jako TRY_CONVERT při připojování ke vzdáleným serverům.
TRY_CAST nefunguje pro výraz v následujících případech:
- varchar(max), pokud je délka delší než 8 000
- nvarchar(max), pokud je délka delší než 4 000
Examples
A. TRY_CAST vrací NULL
Následující příklad ukazuje, že vrátí
TRY_CASThodnotu null při selhání přetypování.SELECT CASE WHEN TRY_CAST('test' AS FLOAT) IS NULL THEN 'Cast failed' ELSE 'Cast succeeded' END AS Result; GOTento dotaz vrací výsledek .
Cast failedNásledující příklad ukazuje, že výraz musí být v očekávaném formátu.
SET DATEFORMAT dmy; SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result; GOTento dotaz vrací výsledek .
NULL
B. TRY_CAST selže s chybou
Následující příklad ukazuje, že TRY_CAST vrátí chybu, když přetypování není explicitně povoleno.
SELECT TRY_CAST(4 AS XML) AS Result;
GO
Výsledkem tohoto tvrzení je chyba, protože celé číslo nelze přenést do xml datového typu.
Explicit conversion from data type int to xml is not allowed.
C. TRY_CAST úspěšně
Tento příklad ukazuje, že výraz musí být v očekávaném formátu.
SET DATEFORMAT mdy;
SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result;
GO
Tento dotaz vrací výsledek .2022-12-31 00:00:00.0000000