Microsoft SQL Server
Konwertowanie typów danych
Szukaj…
WYPRÓBUJ
Konwertuje ciąg danych typu na docelowy typ danych (Data lub Numeryczne).
Na przykład dane źródłowe są typu ciąg i musimy ukryć do typu daty. Jeśli próba konwersji zakończy się niepowodzeniem, zwraca wartość NULL.
Składnia: TRY_PARSE (wartość_łańcuchowa AS typ danych [USING culture])
String_value - jest to wartość źródłowa typu NVARCHAR (4000).
Typ_danych - ten argument jest docelowym typem danych, datą lub liczbą.
Kultura - jest to opcjonalny argument, który pomaga przekonwertować wartość na format Kultura. Załóżmy, że chcesz wyświetlić datę w języku francuskim, a następnie musisz podać typ kultury jako „Fr-FR”. Jeśli nie przekażesz żadnej prawidłowej nazwy kultury, PARSE zgłosi błąd.
DECLARE @fakeDate AS varchar(10);
DECLARE @realDate AS VARCHAR(10);
SET @fakeDate = 'iamnotadate';
SET @realDate = '13/09/2015';
SELECT TRY_PARSE(@fakeDate AS DATE); --NULL as the parsing fails
SELECT TRY_PARSE(@realDate AS DATE); -- NULL due to type mismatch
SELECT TRY_PARSE(@realDate AS DATE USING 'Fr-FR'); -- 2015-09-13
WYPRÓBUJ KONWERT
Konwertuje wartość na określony typ danych, a jeśli konwersja się nie powiedzie, zwraca NULL. Na przykład wartość źródłowa w formacie ciągu i potrzebujemy formatu daty / liczby całkowitej. Pomoże nam to osiągnąć to samo.
Składnia: TRY_CONVERT (typ_danych [(długość)], wyrażenie [, styl])
TRY_CONVERT () zwraca rzutowaną wartość na określony typ danych, jeśli rzutowanie się powiedzie; w przeciwnym razie zwraca null.
Typ danych - typ danych, na który należy dokonać konwersji. Tutaj długość jest opcjonalnym parametrem, który pomaga uzyskać wynik w określonej długości.
Wyrażenie - wartość do konwersji
Styl - jest to parametr opcjonalny, który określa formatowanie. Załóżmy, że chcesz mieć format daty, np. „18 maja 2013 r.”, A następnie musisz podać styl jako 111.
DECLARE @sampletext AS VARCHAR(10);
SET @sampletext = '123456';
DECLARE @ realDate AS VARCHAR(10);
SET @realDate = '13/09/2015’;
SELECT TRY_CONVERT(INT, @sampletext); -- 123456
SELECT TRY_CONVERT(DATETIME, @sampletext); -- NULL
SELECT TRY_CONVERT(DATETIME, @realDate, 111); -- Sep, 13 2015
WYPRÓBUJ
Konwertuje wartość na określony typ danych, a jeśli konwersja się nie powiedzie, zwraca NULL. Na przykład wartość źródłowa w formacie ciągu i potrzebujemy jej w formacie podwójnym / całkowitym. Pomoże nam to to osiągnąć.
Składnia: TRY_CAST (wyrażenie AS typ_danych [(długość)])
TRY_CAST () zwraca rzutowaną wartość na określony typ danych, jeśli rzutowanie się powiedzie; w przeciwnym razie zwraca null.
Wyrażenie - wartość źródłowa, która zostanie przekazana.
Typ_danych - docelowy typ danych, który zostanie przesłany przez wartość źródłową.
Długość - jest to parametr opcjonalny, który określa długość docelowego typu danych.
DECLARE @sampletext AS VARCHAR(10);
SET @sampletext = '123456';
SELECT TRY_CAST(@sampletext AS INT); -- 123456
SELECT TRY_CAST(@sampletext AS DATE); -- NULL
Odlew
Funkcja Cast () służy do konwersji zmiennej typu danych lub danych z jednego typu danych na inny typ danych.
Składnia
CAST ([Expression] AS Datatype)
Typ danych, do którego rzutujesz wyrażenie, jest typem docelowym. Typ danych wyrażenia, z którego rzutujesz, to typ źródła.
DECLARE @A varchar(2)
DECLARE @B varchar(2)
set @A='25a'
set @B='15'
Select CAST(@A as int) + CAST(@B as int) as Result
--'25a' is casted to 25 (string to int)
--'15' is casted to 15 (string to int)
--Result
--40
DECLARE @C varchar(2) = 'a'
select CAST(@C as int) as Result
--Result
--Conversion failed when converting the varchar value 'a' to data type int.
Zgłasza błąd, jeśli się nie powiedzie
Konwertować
Kiedy konwertujesz wyrażenia z jednego typu na inny, w wielu przypadkach będzie istniała potrzeba w ramach procedury składowanej lub innej procedury, aby przekonwertować dane z typu datetime na typ varchar. Do takich rzeczy używana jest funkcja Konwertuj. Funkcji CONVERT () można używać do wyświetlania danych daty / godziny w różnych formatach. Składnia
CONVERT (typ_danych (długość), wyrażenie, styl)
Styl - wartości stylu dla konwersji datetime lub smalldatetime na dane znakowe. Dodaj 100 do wartości stylu, aby uzyskać czteropunktowy rok obejmujący wiek (rrrr).
select convert(varchar(20),GETDATE(),108)
13:27:16