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;
此函数接受字符格式的值,并将其以指定的日期格式返回。
广告