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_CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Arguments
data_type
Datatypen som uttrycket ska kastas in i.
length
Ett valfritt heltal som anger längden på måldatatypen för datatyper som tillåter en användares angivna längd. Maxvärdet för längd är 8 000 byte.
uttryck
Värdet att kasta.
stil
Valfritt heltalsuttryck som specificerar hur TRY_CONVERT funktionen ska översätta.
Style accepterar samma värden som style-parameternCONVERT för funktionen. Mer information finns i CAST och CONVERT.
Värdet av data_type bestämmer intervallet för acceptabla värden. Om stilen är NULL, så TRY_CONVERT returnerar NULL.
Returtyper
Returnerar ett värde kastat till den angivna datatypen om kastningen lyckas; annars returnerar NULL.
Anmärkningar
TRY_CONVERT tar värdet som skickas till den och försöker konvertera det till den angivna data_type. Om kastet lyckas, TRY_CONVERT returnerar värdet som angivet data_type; om ett fel uppstår, NULL returneras. Men om du begär en konvertering som uttryckligen inte är tillåten, misslyckas TRY_CONVERT den med ett fel.
TRY_CONVERT är ett reserverat nyckelord, som börjar med kompatibilitetsnivån 110.
Denna funktion kan fjärrstyras till servrar som har SQL Server 2012 (11.x) och senare versioner. Den är inte fjärransluten till servrar som har en version tidigare än SQL Server 2012 (11.x).
Examples
A. TRY_CONVERT returnerar NULL
Följande exempel visar att det
TRY_CONVERTåterkommerNULLnär gipset misslyckas.SELECT CASE WHEN TRY_CONVERT(FLOAT, 'test') 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_CONVERT(DATETIME2, '12/31/2022') AS Result; GODenna fråga ger ett resultat av
NULL.
B. TRY_CONVERT misslyckas med ett fel
Följande exempel visar att TRY_CONVERT returnerar ett fel när castet uttryckligen inte är tillåtet.
SELECT TRY_CONVERT(XML, 4) 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_CONVERT lyckas
Detta exempel visar att uttrycket måste vara i förväntat format.
SET DATEFORMAT mdy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO
Denna fråga ger ett resultat av 2022-12-31 00:00:00.0000000.