Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Returnerar ett värde kastat till den angivna datatypen om kastningen lyckas; annars returnerar null.
Transact-SQL syntaxkonventioner
Syntax
TRY_CAST ( expression AS data_type [ ( length ) ] )
Arguments
uttryck
Specificerar vilket giltigt uttryck som helst som ska kastas.
data_type
Datatypen som uttrycket ska kastas in i. Detta värde bestämmer intervallet för acceptabla värden.
length
Valfritt heltal som specificerar längden på måldatatypen.
Returtyper
Returnerar ett värde kastat till den angivna datatypen om kastningen lyckas; annars returnerar null.
Anmärkningar
TRY_CAST tar värdet som skickas till den och försöker konvertera det till den angivna data_type. Om kastet lyckas returnerar TRY_CAST värdet som angivet data_type; om ett fel uppstår returneras null. Men om du begär en konvertering som uttryckligen inte är tillåten, misslyckas TRY_CAST den med ett fel.
TRY_CAST är inte ett nytt reserverat nyckelord och finns tillgängligt på alla kompatibilitetsnivåer.
TRY_CAST har samma semantik som TRY_CONVERT när man ansluter till fjärrservrar.
TRY_CAST fungerar inte för ett uttryck i följande fall:
- varchar(max) om längden är över 8 000
- nvarchar(max) om längden är över 4 000
Examples
A. TRY_CAST returnerar NULL
Följande exempel visar att
TRY_CASTreturnerar null när kastet misslyckas.SELECT CASE WHEN TRY_CAST('test' AS FLOAT) IS NULL THEN 'Cast failed' ELSE 'Cast succeeded' END AS Result; GODenna fråga ger ett resultat av
Cast failed.Följande exempel visar att uttrycket måste vara i det förväntade formatet.
SET DATEFORMAT dmy; SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result; GODenna fråga ger ett resultat av
NULL.
B. TRY_CAST misslyckas med ett fel
Följande exempel visar att TRY_CAST returnerar ett fel när castet uttryckligen inte är tillåtet.
SELECT TRY_CAST(4 AS XML) AS Result;
GO
Resultatet av detta uttalande är ett fel, eftersom ett heltal inte kan kastas in i xml-datatypen .
Explicit conversion from data type int to xml is not allowed.
C. TRY_CAST lyckas
Detta exempel visar att uttrycket måste vara i förväntat format.
SET DATEFORMAT mdy;
SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result;
GO
Denna fråga ger ett resultat av 2022-12-31 00:00:00.0000000.