📜  SQL |转换函数(1)

📅  最后修改于: 2023-12-03 15:35:05.627000             🧑  作者: Mango

SQL转换函数

在SQL中,转换函数用于将一个数据类型转换成另一个数据类型。这对于数据类型的处理和计算十分有用。SQL中提供了多种转换函数,包括数字转换函数、日期转换函数、字符串转换函数等等。

本文将介绍常用的SQL转换函数,包括:

  • CAST函数
  • CONVERT函数
  • TO_CHAR函数
  • TO_NUMBER函数
  • TO_DATE函数
CAST函数

CAST函数用于将一个数据类型转换成另一个数据类型。它的语法如下:

CAST(expression AS datatype)

其中,expression是待转换的表达式,datatype是目标数据类型。可以将表达式转换成各种数据类型,例如整型、浮点型、日期型、字符串型等等。

下面是一些示例:

  • 将字符串转换成整型:
SELECT CAST('123' AS INT);
  • 将字符串转换成日期型:
SELECT CAST('2021-01-01' AS DATE);
  • 将浮点数转换成整型:
SELECT CAST(3.14 AS INT);

注意,如果转换失败,会抛出异常。例如,将字符串转换成整型时,如果字符串中包含非数字字符,就会抛出异常。

CONVERT函数

CONVERT函数与CAST函数类似,也用于将一个数据类型转换成另一个数据类型。不同的是,它支持更多的数据类型,例如二进制类型、Unicode类型等等。它的语法如下:

CONVERT(datatype, expression, style)

其中,datatype是目标数据类型,expression是待转换的表达式,style是样式。

与CAST函数不同,CONVERT函数支持更多的样式。例如,可以将日期格式化成不同的形式,或者将Unicode字符串转换成ASCII字符串。下面是一些示例:

  • 将字符串转换成Unicode字符串:
SELECT CONVERT(N'Hello', UNICODE);
  • 将日期格式化成不同的形式:
SELECT CONVERT(VARCHAR(10), GETDATE(), 110);
  • 将Unicode字符串转换成ASCII字符串:
SELECT CONVERT(VARCHAR(10), N'你好', 936);

注意,样式参数不是必须的,如果没有特殊需求,可以不填写。

TO_CHAR函数

TO_CHAR函数用于将一个日期型或数字型数据转换成字符串型数据。它的语法如下:

TO_CHAR(expression, format)

其中,expression是待转换的表达式,format是格式化字符串。

TO_CHAR函数与CONVERT函数类似,都支持格式化字符串。不同的是,TO_CHAR函数只支持日期型和数字型的数据。下面是一些示例:

  • 将数字型数据转换成字符串:
SELECT TO_CHAR(123);
  • 将日期型数据转换成字符串:
SELECT TO_CHAR(GETDATE(), 'YYYY-MM-DD');
TO_NUMBER函数

TO_NUMBER函数用于将一个字符串型数据转换成数字型数据。它的语法如下:

TO_NUMBER(expression)

其中,expression是待转换的表达式。

TO_NUMBER函数与CAST函数类似,都用于将一个数据类型转换成另一个数据类型。不同的是,TO_NUMBER函数只支持字符串型转换成数字型。下面是一些示例:

  • 将字符串型数据转换成数字型数据:
SELECT TO_NUMBER('123');

注意,如果待转换的字符串中包含非数字字符,就会抛出异常。

TO_DATE函数

TO_DATE函数用于将一个字符串型数据转换成日期型数据。它的语法如下:

TO_DATE(expression, format)

其中,expression是待转换的表达式,format是格式化字符串。

TO_DATE函数与TO_CHAR函数类似,都用于将一个数据类型转换成另一个数据类型。不同的是,TO_DATE函数只支持字符串型转换成日期型。下面是一些示例:

  • 将字符串型数据转换成日期型数据:
SELECT TO_DATE('2021-01-01', 'YYYY-MM-DD');

注意,如果待转换的字符串和格式化字符串不匹配,就会抛出异常。