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
Pokud je přenášení úspěšné, vrátí hodnotu přetvořenou do určeného datového typu; jinak vrací NULL.
Syntaxe
TRY_CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Arguments
data_type
Datový typ, do kterého se má výraz přetypovat.
length
Volitelné celé číslo, které určuje délku cílového datového typu, pro datové typy, které uživateli umožňují zadanou délku. Maximální hodnota délky je 8 000 bajtů.
expression
Hodnota seslání.
styl
Volitelný celočíselný výraz, který specifikuje, jak TRY_CONVERT má funkce výraz překládat.
styl přijímá stejné hodnoty jako parametr stylu funkce CONVERT . Další informace naleznete v tématu CAST a CONVERT.
Hodnota data_type určuje rozsah přijatelných hodnot. Pokud je styl , NULLpak TRY_CONVERT vrací NULL.
Návratové typy
Pokud je přenášení úspěšné, vrátí hodnotu přetvořenou do určeného datového typu; jinak vrací NULL.
Poznámky
TRY_CONVERT vezme hodnotu předanou do ní a pokusí se ji převést na zadanou data_type. Pokud převedení uspěje, TRY_CONVERT vrátí se hodnota ve stanovené data_type; pokud dojde k chybě, vrátí se. NULL Pokud ale požádáte o převod, který explicitně není povolený, dojde TRY_CONVERT k chybě.
TRY_CONVERT je rezervované klíčové slovo, začíná na úrovni 110kompatibility .
Tato funkce je schopna vzdáleně připojit k serverům s SQL Server 2012 (11.x) a novějšími verzemi. Není vzdáleně přidělován serverům, které mají verzi starší než SQL Server 2012 (11.x).
Examples
A. TRY_CONVERT vrací NULL
Následující příklad ukazuje, že se vrací
TRY_CONVERT,NULLkdyž sesílání selže.SELECT CASE WHEN TRY_CONVERT(FLOAT, 'test') 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_CONVERT(DATETIME2, '12/31/2022') AS Result; GOTento dotaz vrací výsledek .
NULL
B. TRY_CONVERT selže s chybou
Následující příklad ukazuje, že TRY_CONVERT vrátí chybu, když přetypování není explicitně povoleno.
SELECT TRY_CONVERT(XML, 4) 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_CONVERT uspěje
Tento příklad ukazuje, že výraz musí být v očekávaném formátu.
SET DATEFORMAT mdy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO
Tento dotaz vrací výsledek .2022-12-31 00:00:00.0000000