SQL函数的使用
SQL函数的说明:
SQL函数是不通用的。SQL函数与前面所讲的SQL语句不同,它们在不同的数据库管理系统中不能通用,因为每一个数据库管理系统都有一套自己的SQL函数,而只有很少的函数在大多数DBMS中都能使用。例如:
功能 | SQL Server函数 | Oracel函数或语句 | MySQL函数 |
---|---|---|---|
获取字符串的某部分 | SUBSTRING() | SUBSTR() | SUBSTRING() |
获取当前日期 | GETDATE() | SYSDATE | CURDATE() |
转换数据类型 | CONVERT() | 有多个具体函数,如TO_DATE()将字符串转换为日期等 | CONVERT() |
类型转换函数:
- 转换函数将具体DBMS的数据值转换成其它数据类型或对其进行格式化。
- 经常用到的转换是,将日期和数字转换成指定的字符串格式,或者将字符串转换成有效的日期或数值。
❀在SQL Server中,使用CONVERT()
和CAST()
两个函数转换数据类型。 - Ⅰ.
CONVERT()
函数
语法格式:CONVERT( datatype[(length)], expression, [style]) #其中,datatype为要转换成的数据类型,如果是`CHAR`、`VARCHAR`、`BINARY`或`VARBINARY`数据类型,则可以选择length参数设置长度,expression为表达式(字段名),如果要将日期型数据转换为字符型数据,则还可以使用style参数设置日期显示格式。
- Ⅱ.
CAST()
函数
CAST()
函数是SQL92标准函数。使用CAST()
函数也可以转换数据类型,但是,在格式化日期时间数据方面不如CONVERT()
函数方便。
CAST()
函数的语法格式为:CAST( expression AS datatype[(length)]) #其中,expression为表达式(字段名),datatype为要转换成的数据类型,如果是`CHAR`、`VARCHAR`、`BINARY`或`VARBINARY`数据类型,则可以选择length参数设置长度。
❀在Oracle中常用的类型转换函数:
- Ⅰ.
TO_CHAR
函数
TO_CHAR
函数可以将一个数值或者日期转换为指定格式的字符串。
(1)将数值转换为字符串
使用TO_CHAR
函数将数值转换为字符串的语法格式为:TO_ CHAR ( number[,format])
如果,不指定格式(format) ,Oracle将 会把number转换成最简单的字符串形式,如果是负数则在前面加一个减号(-) 。不过在多数情况下,用户还是想以特定的格式显示number,因此,需要设置format参数。
(2)将日期转换为字符串
使用TO_ CHAR
函数将日期转换为字符串的语法格式为:TO_ CHAR (date, format )
TO_ CHAR
函数按format参数指定的格式将日期转换成相应的字符串形式。 - Ⅱ.
TO_DATE
函数
TO_DATE
函数根据给定的格式将一个字符串转换成日期值,其语法格式为:TO_ DATE (string, format)
❀在MySQL中常用的类型转换函数:
CONVERT
函数
CONVERT
函数的语法格式为:CONVERT(value, type)
其中,type为数据类型,但是要特别注意,可以转换的数据类型是有限制的。只可以转换成下表中的格式:
类型 | 语法格式 |
---|---|
二进制 | BINARY[(N)] |
字符型 | CHAR[(N)] |
日期 | DATE |
时间 | TIME |
日期时间型 | DATETIME |
浮点型 | DECIMAL |
整数 | SIGNED[INTEGER] |
无符号整数 | UNSIGNED[INTEGER] |
CAST
函数
CAST
函数的语法格式为:CAST(value AS type)
其中,type为数据类型,同上
在MySQL中,若查询出来数字数据在单元格左边,则该数据为字符串类型;若查询出类的数字在单元格右边,则该数据为整型数据。
日期函数:
日期函数允许操作日期时间值。
❀SQL Server支持的日期函数有GETDATE
、DATEADD
、DATEDIFF
、DATENAME
和lDATEPART
等函数。
- Ⅰ.
GETDATE
函数
.GETDATE.
函数用于获取当前系统时间,其格式为:GETDATE()
输入SELECT GETDATE()
运行后就可以获得当前系统时间 - Ⅱ.
DATEADD
函数
·DATEADD·函数用于在指定日期上增加年、月、日或者时间等,其返回值为日期型数据。
其格式为:DATEADD(datepart,number,date)
其中,datepart参数规定在日期的哪个部分(如年份、月份等)增加(减)数值。
如:DATEADD(month,10,GETDATE())
是在当前时间的“月”上增加了10个月,并返回10个月后的日期
说明: datepart参数值也可以使用缩写,例如,DATEADD(mm,10,GETDATE()也是在当前时间上增加10个月。
- Ⅲ.
DATEDIFF
函数