SQL PARSE 函数是一个转换函数,用于将字符串数据转换为请求的数据类型,并以表达式的形式返回结果。建议使用此 PARSE 函数将字符串数据转换为日期时间或数字类型。
SQL Server PARSE 函数的语法如下所示。
PARSE (String_Value AS Data_Type [USING Culture]) -- For example SELECT PARSE (String_Column_Value AS Data_Type USING 'en-US') AS [result_name] FROM [Source]
- Data_Type:您希望将 String_Value 转换为的数据类型
- Culture:这是一个可选参数。默认情况下,它使用当前会话的语言。
SQL Server PARSE 函数示例
Parse 函数主要用于将字符串转换为日期和时间以及数字值。下面的 Parse 函数查询将整数或字符串解析为 decimal,并将字符串解析为 DateTime。
如果 Parse 函数无法将字符串转换为所需的数据类型。如果我们传入不可转换的字符串,或者传入 NULL 值,那么此 Parse 函数将返回错误。
DECLARE @str AS VARCHAR(50)
SET @str = '11122'
SELECT PARSE(@str AS INT) AS Result;
-- Direct Inputs
SELECT PARSE('1234' AS DECIMAL(10, 2)) AS Result;
SELECT PARSE('06/03/2017' AS DATETIME) AS Result;
SELECT PARSE('06/03/2017' AS DATETIME2) AS Result;

我们在 SQL Server 中将字符串值转换为整数,并使用 ALIAS 列将其命名为“Result”。
SELECT TRY_PARSE(@str AS INT) AS Result;
在下一行中,我们直接在字符串值上使用了 SQL PARSE 函数,并将其转换为精度为 2 的 decimal 值。
SELECT PARSE('1234' AS DECIMAL(10, 2)) AS Result;
接下来,我们将字符串转换为 DateTime 和 datetime2 数据类型。
SELECT PARSE('06/03/2017' AS DATETIME) AS Result;
SELECT PARSE('06/03/2017' AS DATETIME2) AS Result;
Parse 函数示例 2
在此 Parse 函数示例中,我们将处理 NULL 值和不可转换的字符串。
DECLARE @strval AS VARCHAR(50) SET @strval = NULL SELECT PARSE(@strval AS INT) AS Result;

让我们看看如果我们将 NULL 值作为直接输入会发生什么。
SELECT PARSE(NULL AS INT) AS Result;

我们尝试将“Tutorial Gateway”字符串转换为日期时间。这是不可能的,因此此 parse 函数返回错误作为输出。
SELECT PARSE('Tutorial Gateway' AS DATETIME USING 'en-US') AS Result;
