试试吧

Version >= SQL Server 2012

它将字符串数据类型转换为目标数据类型(日期或数字)。

例如,源数据是字符串类型,我们需要转换为日期类型。如果转换尝试失败,则返回 NULL 值。

语法:TRY_PARSE(string_value AS data_type [USING culture])

String_value - 这个参数是源值,它是 NVARCHAR(4000) 类型。
Data_type - 此参数是目标数据类型,可以是日期或数字。
文化 - 它是一个可选参数,有助于将值转换为文化格式。假设你要以法语显示日期,则需要将文化类型作为“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