T-SQL Tutorial

T-SQL Conversion functions


This article describes how to use the T-SQL Conversion functions in SQL Server database.
Conversion functions perform conversions of expression using cast, convert and parse.
The SQL Server Conversion functions are: CAST, CONVERT, PARSE, TRY_CAST, TRY_CONVERT, TRY_PARSE.


CAST

SQL Server CAST convert an expression of one data type to another.

USE model;
GO
DECLARE @string AS varchar(100);
DECLARE @number AS int;
SET @string = '5500';
SET @number = CAST(@string AS INT);
PRINT @number;
GO


CONVERT

SQL Server CONVERT function is the same like the cast function, converts an expression, only the syntax is different.

USE model;
GO
DECLARE @string AS varchar(100);
DECLARE @number AS int;
SET @string = '40300';
SET @number = CONVERT(INT, @string);
PRINT @number;
GO


PARSE

SQL Server PARSE function translate an expression value to the requested data type.

USE model;
GO
DECLARE @string AS varchar(100);
DECLARE @string2 AS varchar(100);
DECLARE @number AS int;
DECLARE @date AS date;
SET @string = '33500';
SET @string2 = 'Sunday, 03 May 2020';
SET @number = PARSE(@string AS INT);
SET @date = PARSE(@string2 AS date);
PRINT @number;
PRINT @date;
GO






TRY_CAST

SQL Server TRY_CAST function perform an converting from string to date/time and number types. Returns null if the cast fails.

USE model;
GO
DECLARE @string AS varchar(100);
DECLARE @string2 AS varchar(100);
SET @string = 'abcde';
SET @string2 = '12345';
SELECT
CASE WHEN TRY_CAST(@string AS int) IS NULL
THEN 'Ok'
ELSE 'Not Ok'
END AS Result;
SELECT
CASE WHEN TRY_CAST(@string2 AS int) IS NULL
THEN 'Ok'
ELSE 'Not Ok'
END AS Result2;
GO


TRY_CONVERT

SQL Server TRY_CONVERT function perform a value cast conversion to the specified data type if the cast succeeds, else if cast is not succeeds returns null.

USE model;
GO
DECLARE @string AS varchar(100);
DECLARE @string2 AS varchar(100);
SET @string = 'xyzijk';
SET @string2 = '97102';
SELECT
CASE WHEN TRY_CONVERT(int, @string) IS NULL
THEN 'Ok'
ELSE 'Not Ok'
END AS Result;
SELECT
CASE WHEN TRY_CONVERT(int, @string2) IS NULL
THEN 'Ok'
ELSE 'Not Ok'
END AS Result2;
GO


TRY_PARSE

SQL Server TRY_PARSE function perform a value cast conversion to the specified data type if the cast succeeds, else if cast is not succeeds returns null.

USE model;
GO
DECLARE @string AS varchar(100);
DECLARE @string2 AS varchar(100);
SET @string = 'test123';
SET @string2 = '10267';
SELECT
CASE WHEN TRY_PARSE(@string AS int) IS NULL
THEN 'True'
ELSE 'False'
END AS Result;
SELECT
CASE WHEN TRY_PARSE(@string2 AS int) IS NOT NULL
THEN 'True'
ELSE 'False'
END AS Result2;
GO