SQL TRY_CAST() 函数

SQL TRY_CAST() 函数

SQL TRY_CAST() 函数是SQL中的转换函数之一,类似于CAST函数。它用于在不同的数据类型之间转换表达式。它用于更改表达式的数据类型。如果成功,SQL TRY CAST将返回所选数据类型中的表达式。如果不成功,则返回null。

TRY CAST()和CAST()函数之间的主要区别在于处理失败的转换的方式。CAST()函数对于失败的转换操作会产生错误,而TRY CAST()返回NULL。

语法

以下是SQL TRY_CAST()函数的语法 −

TRY_CAST ( expression AS data_type [ ( length ) ] )

参数

该函数仅接受三个参数。具体如下描述:

  • expression - 要转换的有效表达式。

  • datatype - 要将表达式转换为的数据类型。

  • length - 用于定义任何目标数据类型的长度,作为可选参数。

示例

让我们尝试使用以下查询将字符串转换为十进制数。使用TRY_CAST()函数:

SELECT TRY_CAST('123.45' AS DECIMAL(6, 2)) Result;

输出:

当我们执行上述查询时,得到的输出结果如下:

+------------------------------------+
|                              Result|
+------------------------------------+
|                             123.45 |
+------------------------------------+

示例

在下面的示例中,我们将使用 GETDATE() 以及TRY_CAST()函数,通过以下查询将日期和时间转换为日期值。

SELECT TRY_CAST(GETDATE() AS DATE) Result;

输出

执行上述查询后,输出如下所示 –

+------------------------------------+
|                              Result|
+------------------------------------+
|                          2023-02-23|
+------------------------------------+

示例

考虑以下示例,我们将使用 GETDATE() 函数以及TRY_CAST()函数来将表达式转换为varchar,使用以下查询:

SELECT TRY_CAST(GETDATE() AS VARCHAR(22)) AS Result;

输出

执行上述查询后,输出如下所示:

+------------------------------------+
|                              Result|
+------------------------------------+
|                Feb 23 2023 12:17PM |
+------------------------------------+

示例

让我们来看另一个场景,在这个场景中,我们将使用 GETDATE() 和TRY_CAST()函数来将日期和时间转换为时间值,使用以下查询:

SELECT TRY_CAST(GETDATE() AS TIME) Result;

输出

上述查询的输出如下所示−

+------------------------------------+
|                              Result|
+------------------------------------+
|                   11:57:20.3266667 |
+------------------------------------+

示例

看下面的示例,我们将使用以下查询将十进制值转换为整数。

SELECT TRY_CAST(112233.4455 AS int) AS Result;

输出

如果我们编译并运行上述查询,结果如下所示−

+------------------------------------+
|                              Result|
+------------------------------------+
|                             112233 |
+------------------------------------+

示例

让我们来看下面的示例,其中 TRY_CAST() 函数在没有超出限制时返回NULL,使用以下查询:

SELECT TRY_CAST('TUTORIALSPOINT' AS int) AS Result;

输出

执行上述查询后,将生成如下所示的输出结果−

+------------------------------------+
|                              Result|
+------------------------------------+
|                               NULL |
+------------------------------------+

示例

让我们考虑另一个示例,我们将使用 TRY_CAST() 函数与case一起运行以下查询:

SELECT 
CASE WHEN TRY_CAST('TUTORIALSPOINT' AS int) IS NULL
 THEN 'CastFailed'  
    ELSE 'CastSucceeded'  
END AS Result;

输出

当查询被执行时,它将生成以下输出:

+------------------------------------+
|                              Result|
+------------------------------------+
|                         CastFailed |
+------------------------------------+

示例

考虑以下示例,在此示例中,我们使用以下查询将表达式转换为金额:

DECLARE @STR AS VARCHAR(22)
SET @STR = '12345'
SELECT TRY_CAST(@STR AS MONEY) AS Result;

输出

当我们执行上面的查询时,输出结果如下:

+------------------------------------+
|                              Result|
+------------------------------------+
|                           12345.00 |
+------------------------------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程