Microsoft SQL Server
Преобразование типов данных
Поиск…
TRY PARSE
Он преобразует строковый тип данных в целевой тип данных (Date или Numeric).
Например, исходные данные являются строковыми типами, и нам нужно скрывать тип даты. Если попытка конверсии не удалась, она возвращает значение NULL.
Синтаксис: TRY_PARSE (string_value AS data_type [ИСПОЛЬЗОВАНИЕ культуры])
String_value - аргумент является значением источника, которое является типом NVARCHAR (4000).
Data_type - этот аргумент является типом данных цели или даты или числа.
Культура. Это необязательный аргумент, который помогает преобразовать значение в формат Culture. Предположим, вы хотите отобразить дату на французском языке, тогда вам нужно передать тип культуры как «Fr-FR». Если вы не пройдете какое-либо действительное название культуры, PARSE вызовет ошибку.
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
TRY CONVERT
Он преобразует значение в указанный тип данных, и если преобразование не выполняется, оно возвращает NULL. Например, исходное значение в формате строки, и нам нужен формат даты / целого. Тогда это поможет нам достичь того же.
Синтаксис: TRY_CONVERT (data_type [(длина)], выражение [, style])
TRY_CONVERT () возвращает значение, присвоенное указанному типу данных, если преследование преуспевает; в противном случае возвращает null.
Data_type - тип данных, в который нужно преобразовать. Здесь length - необязательный параметр, который помогает получить результат в указанной длине.
Выражение - значение, которое нужно преобразовать
Стиль. Это необязательный параметр, который определяет форматирование. Предположим, вам нужен формат даты, например «18 мая 2013 года», тогда вам нужно пройти стиль «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
ПОПРОБУЙТЕ CAST
Он преобразует значение в указанный тип данных, и если преобразование не выполняется, оно возвращает NULL. Например, исходное значение в формате строки, и нам нужно его в формате double / integer. Тогда это поможет нам в достижении этого.
Синтаксис: TRY_CAST (выражение AS data_type [(длина)])
TRY_CAST () возвращает значение, отлитое к указанному типу данных, если листинг преуспевает; в противном случае возвращает null.
Выражение - значение источника, которое будет передаваться.
Data_type - Тип целевой информации, которую будет выдавать исходное значение.
Длина - это необязательный параметр, указывающий длину целевого типа данных.
DECLARE @sampletext AS VARCHAR(10);
SET @sampletext = '123456';
SELECT TRY_CAST(@sampletext AS INT); -- 123456
SELECT TRY_CAST(@sampletext AS DATE); -- NULL
В ролях
Функция Cast () используется для преобразования переменной типа данных или данных из одного типа данных в другой тип данных.
Синтаксис
CAST ([выражение] AS Тип данных)
Тип данных, к которому вы выполняете выражение, является типом цели. Тип данных выражения, из которого вы выполняете литье, является типом источника.
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.
Выдает ошибку, если не удалось
Перерабатывать
Когда вы конвертируете выражения из одного типа в другой, во многих случаях в хранимой процедуре или другой подпрограмме потребуется преобразовать данные из типа datetime в тип varchar. Функция Convert используется для таких вещей. Функция CONVERT () может использоваться для отображения данных даты и времени в различных форматах. Синтаксис
CONVERT (data_type (длина), выражение, стиль)
Значения стиля стиля для преобразования даты или времени в символьные данные. Добавьте 100 к значению стиля, чтобы получить четырехместный год, который включает в себя век (yyyy).
select convert(varchar(20),GETDATE(),108)
13:27:16