SQL 中的转换函数


有时,SQL 查询可能期望某种数据类型,但得到的是另一种。在这种情况下,SQL 会进行类型转换。这是隐式类型转换。但是,有时程序员会在查询中显式地将一种数据类型转换为另一种数据类型。这称为显式类型转换。以下将详细介绍这两种类型转换。

隐式数据类型转换

在隐式数据类型转换中,SQL 程序员无需指定任何内容。系统会根据其要求将一种数据类型转换为另一种数据类型。例如,如果需要,数值数据类型可以转换为字符类型,反之亦然。

只有在查询中使用的数据类型有效,以便系统能够识别并根据需要进行转换时,才会发生隐式数据类型转换。对于无效或错误提供的数据类型,这是不可能的。

显式数据类型转换

如果程序员希望,他们可以显式地将数据类型从一种形式转换为另一种形式。为此目的提供了 SQL 函数。这些 SQL 函数为:

TO_CHAR

此函数用于将数字或日期数据类型显式转换为字符类型。

此函数的语法如下所示:

TO_CHAR(number,format,parameters)

此函数根据语法中提供的特定格式将数字更改为字符。可以使用参数指定小数字符、组分隔符等。

例如:

SELECT CHAR(sysdate, “Month DD,YYYY”) FROM DUAL;

这将以 2018 年 7 月 31 日的形式返回系统日期。

TO_NUMBER

此函数用于将字符串显式转换为数字。如果要转换的字符串不包含数字字符,则 TO_NUMBER 会显示错误。

此函数的语法如下所示:

TO_NUMBER(number,format,parameters)

此函数根据语法中提供的特定格式将给定的字符串更改为数字。

参数和格式是可选的,因此可以将字符串转换为数字。

例如:

TO_NUMBER (‘353.78’);

这将以数字格式返回字符串 353.78。

TO_DATE

此函数接受字符值并以日期格式返回输出。

此函数的语法如下所示:

TO_DATE(number, format, parameters)

此函数根据语法中提供的特定格式将给定的字符串更改为数字。

SELECT TO_DATE(‘2018/07/31’,’yyyy/mm/dd’) FROM DUAL;

此函数以字符格式获取值,并根据指定的格式将其返回为日期格式。

更新于: 2020-06-20

2K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告