Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Zwraca wartość przetworzoną do określonego typu danych, jeśli przerzut się powiedzie; w przeciwnym razie zwraca NULL.
Transact-SQL konwencje składni
Składnia
TRY_CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Arguments
data_type
Typ danych, do którego ma być rzutowanie wyrażenia.
length
Opcjonalna liczba całkowita określająca długość docelowego typu danych, dla typów danych pozwalających na określoną długość przez użytkownika. Maksymalna wartość długości wynosi 8 000 bajtów.
expression
Wartość rzucania.
styl
Opcjonalne wyrażenie całkowitoliczbowe, które określa, jak funkcja TRY_CONVERT ma przetłumaczyć wyrażenie.
style akceptuje te same wartości co parametr stylu funkcji CONVERT . Aby uzyskać więcej informacji, zobacz CAST i CONVERT.
Wartość data_type określa zakres dopuszczalnych wartości. Jeśli styl jest , NULLto TRY_CONVERT zwraca NULL.
Typy zwracane
Zwraca wartość przetworzoną do określonego typu danych, jeśli przerzut się powiedzie; w przeciwnym razie zwraca NULL.
Uwagi
TRY_CONVERT pobiera przekazaną do niej wartość i próbuje przekonwertować ją na określony data_type. Jeśli rzut się powiedzie, TRY_CONVERT zwraca wartość jako określoną data_type; jeśli wystąpi błąd, zwraca się. NULL Jeśli jednak zażądasz konwersji jawnie niedozwolonej, TRY_CONVERT wystąpi błąd.
TRY_CONVERT jest zarezerwowanym słowem kluczowym, zaczynającym się od poziomu 110zgodności .
Funkcja ta może być zdalnie przesyłana do serwerów z wersjami SQL Server 2012 (11.x) i nowszymi. Nie jest zdalnie przydzielany do serwerów, które mają wersję starszą niż SQL Server 2012 (11.x).
Przykłady
A. TRY_CONVERT zwraca NULL
Poniższy przykład pokazuje, że wraca,
TRY_CONVERTNULLgdy rzut się nie uda.SELECT CASE WHEN TRY_CONVERT(FLOAT, 'test') IS NULL THEN 'Cast failed' ELSE 'Cast succeeded' END AS Result; GOTo zapytanie zwraca wynik .
Cast failedW poniższym przykładzie pokazano, że wyrażenie musi mieć oczekiwany format.
SET DATEFORMAT dmy; SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result; GOTo zapytanie zwraca wynik .
NULL
B. TRY_CONVERT nie wychodzi z błędem
W poniższym przykładzie pokazano, że TRY_CONVERT zwraca błąd, gdy rzutowanie jest jawnie niedozwolone.
SELECT TRY_CONVERT(XML, 4) AS Result;
GO
Wynikiem tego stwierdzenia jest błąd, ponieważ liczba całkowita nie może zostać włożona do typu danych xml .
Explicit conversion from data type int to xml is not allowed.
C. TRY_CONVERT odnosi sukces
W tym przykładzie pokazano, że wyrażenie musi mieć oczekiwany format.
SET DATEFORMAT mdy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO
To zapytanie zwraca wynik .2022-12-31 00:00:00.0000000