试试吧
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