尝试转换

Version >= SQL Server 2012

它将值转换为指定的数据类型,如果转换失败,则返回 NULL。例如,字符串格式的源值,我们需要日期/整数格式。那么这将有助于我们实现同样的目标。

语法:TRY_CONVERT(data_type [(length)],expression [,style])

如果转换成功,TRY_CONVERT() 返回一个转换为指定数据类型的值; 否则,返回 null。

Data_type - 要转换的数据类型。这里 length 是一个可选参数,有助于获得指定长度的结果。
表达式 - 要转换的值
样式 - 它是一个可选参数,用于确定格式。假设你想要像“May,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