SQL 有很多可用于计数和计算的内建函数。常用的函数有聚合函数、日期和时间函数、转换函数、窗口函数、字符串函数等。
聚合函数
名称 |
功能 |
备注 |
AVG |
平均值 |
|
COUNT |
非空值的个数 |
|
FIRST |
第一个记录的值 |
|
LAST |
最后一个记录的值 |
|
MAX() |
最大值 |
|
MIN |
最小值 |
|
SUM |
总和 |
日期函数
名称 |
功能 |
备注 |
CURDATE |
当前日期 |
|
CURTIME |
当前时间 |
|
NOW |
当前日期和时间 |
|
UNIX_TIMESTAMP |
返回 UNIX 时间戳 |
|
DATE_ADD |
将两个日期相加 |
|
DATE_FORMAT |
按照指定格式格式化日期 |
|
DATE_SUB |
将两个日期相减 |
|
DATE |
从 date 或 datetime中提取出日期部分 |
|
DATEDIFF |
将两个日期相减 |
|
DAY |
某天是当月的第几天 (1-31) |
|
DAYNAME |
在用星期中的名称 |
|
DAYOFWEEK |
某天是该星期的第几天 |
|
DAYOFYEAR |
某天是一年中的第几天(1-366) |
|
EXTRACT |
提取日期中的某一部分 |
|
FROM_DAYS |
将天数转换为日期 |
|
FROM_UNIXTIME |
将某个日期格式化为 UNIX 时间戳 |
|
LAST_DAY |
日期所在月份的最后一天 |
|
YEAR |
日期参数中的年份 |
|
WEEK |
参数的星期数 |
|
WEEKDAY |
日期参数时一个星期中的第几天 |
|
MONTH |
日期参数的月份 |
|
HOUR |
提取小时 |
|
MINUTE |
分钟 |
|
SECOND |
参数中的秒数 (0-59) |
|
QUARTER |
日期参数所在的季度 |
|
STR_TO_DATE |
将字符串转换为日期数据 |
转换函数
名称 |
功能 |
备注 |
CAST |
数据类型转换CAST (expression AS data_type) |
如CAST('12' AS int) |
窗口函数
名称 |
功能 |
rank () over (partition by A order by B) |
计算排序时,如果存在相同位次的记录,则会跳过之后的位次 |
dense_rank () over (partition by A order by B) |
计算排序,即使存在相同位次的记录,也不会跳过之后的位次 |
row_number () over (partition by A order by B) |
赋予唯一的连续位次 |
字符串函数
名称 |
功能 |
CONCAT_WS |
连接separator分隔,concat_ws(separator, str1, str2, ...) |
CONCAT |
连接字符串concat(str1, str2,...) |
INSERT |
在指定位置插入一个子字符串,直到指定的字符数 |
LEFT |
指定的最左边的字符数的字符串 |
LOCATE |
第一次出现子字符串的位置 |
LOWER |
以小写返回参数 |
LPAD |
返回字符串参数,用指定的字符串向左填充 |
LTRIM |
删除前导空格 |
REPLACE |
替换指定字符串的出现 |
RIGHT |
返回指定的最右边字符数 |
RPAD |
追加字符串指定的次数 |
RTRIM |
删除尾随空格 |
SUBSTR |
返回指定的子字符串 |
TRIM |
删除前导和尾随空格 |
UPPER |
转换为大写 |
BIT_LENGTH |
参数的长度(以位为单位) |
CHAR_LENGTH |
参数中的字符数 |
LENGTH |
字符串的长度(以字节为单位) |