1.数学函数
数学函数 |
功能介绍 |
TRUNCATE(x,y) |
返回截去小数点后 y 位的数值 x |
RAND() |
返回一个随机浮点值 v,0<=v<=1 |
RAND(x) |
返回一个随机浮点值 v,0<=v<=1;x 为整数,被用作种子值, 用来产生重复序列。 |
LOG(x) |
返回 x 的自然对象,x 相对于基数 e 的对数 |
LOG10(x) |
返回 x 的基数为 10 的对数 |
RADIANS(x) |
返回 x 由角度转化为弧度的值,如 x 取值 90,则返回的弧度为PI( )/2 |
DEGREES(x) |
返回 x 由弧度转化为角度的值,如 x 取 PI( ),则返回的角度值为180 |
控制流函数
控制流函数 |
功能介绍 |
IF(expr,v1,v2) |
返回表达式 expr 得到不同运算结果时对应的值。若 expr 为TRUE(expr<>0 and expr<>null), 则 IF( ) 的返回值为 v1,否则为 v2 |
IFNULL(v1,v2) |
返回参数 v1 或 v2 的值。如果 v1 不为 null,则返回值为 v1,否则返回值为 v2 |
2.字符串函数
字符串函数 |
功能介绍 |
RIGHT(str,len) |
截取右侧字符串函数,返回 str 最左的 len 个字符 |
LTRIM(str) |
删除字符串 str 左侧所有空格 |
RTRIM(str) |
删除字符串 str 右侧所有空格 |
TRIM(str) |
删除字符串 str 左右两端所有空格 |
TRIM(s1 from str) |
删除字符串 str 中两端包含的子字符串 s1 |
REPEAT(str,n) |
重复生成字符串函数。返回一个由重复的字符串 str 组成的字符串,该字符串中 str 的重复次数是 n。若 n<=0,则返回一个空字符串;若 str 或 n 为 null,则返回 null |
STRCMP(s1,s2) |
比较字符串大小函数。若 s1 和 s2 相等,则返回 0;若 s1 小于 s2,则返回 -1;若 s1 大于 s2,则返回 1 |
LOCATE(s1,str) |
匹配字符串开始位置的函数。返回子字符串 s1 在字符串 str 中第一次出现的位置。若 str 中没有包括 s1,则返回 0 |
ELT(n,s1,s2…sn) |
返回指定位置的字符串函数。根据 n 的取值,返回指定的字符串 sn。若 n=1,则返回 s1;若 n=2,则返回 s2,以此类推。若 n<1 或 n>sn 的数目,则返回值为 null |
FIELD(s,s1,s2…sn) |
返回指定字符串位置的函数。返回字符串 s 在 s1,s2,…sn 中出现的位置。如果找不到,则返回值为 0;若 s 为 null,则返回值为 0 |
INSERT(str,s1) |
匹配字符串开始位置的函数。功能同 LOCATE 函数 |
REPLACE(str,s1,s2) |
替换函数。使用字符串 s2 替换字符串 str 中所有的子字符串s1 |
REVERSE(str) |
返回和原始字符串 str 顺序相反的字符串 |
3. 日期和时间函数
日期和时间函数 |
功能介绍 |
WEEK(date,mode) |
该函数返回日期参数 date 对应的星期数。WEEK( )的双参数形式允许指定该星期是否起始于周日或周一, 以及返回值的范围是否为从 0 到 53 或从 1 到53。若 mode 参数被省略,则使用 default_week_format 系统自变量的值 |
DAYOFYEAR(date) |
返回日期参数 date 对应的当前年份的第几天,范围为 1 ~ 365 |
year(date) |
返回日期参数 date 对应的年份 |
month(date) |
返回日期参数 date 对应的月份 |
day(date) |
返回日期参数 date 对应的当前月份的天数值 |
DATE_ADD(date,INTERVAL expr type) 和 ADDDATE(date, INTERVAL expr type) |
加法计算日期函数,这两个函数作用相同,都是返回一个以参数 date 为起始日期加上时间间隔之后的日期值。expr 参数是希望添加的时间间隔,type 表示时间间隔的类型,type 和 expr 取值见表 5.6 |
DATE_SUB(date,INTERVAL expr type) 和 SUBDATE(date,INTERVAL expr type) |
减法计算日期函数,这两个函数作用相同,都是返回一个以参数 date 为起始日期减去时间间隔之后的日期值。expr 参数是希望添加的时间间隔,type 表示时间间隔的类型,type 和 expr 取值见表 5.6 |
ADDTIME(time,expr) |
加法计算时间值函数,返回将 expr 值加上原始时间time 之后的值 |
SUBTIME(time,expr) |
减法计算时间值函数,返回将原始时间 time 减去expr 之后的值 |
DATEDIFF(date1,date2) |
计算两个日期之间天数间隔的函数,返回参数 date1 减去 date2 之后的值。如果 date1 在 date2 之前,返回的值为负值 |
DATE_FORMAT(date, format) |
日期和时间格式化函数。返回根据参数 format 指定的格式显示的 date 值。format 包含的格式见表 5.7,即 DATE_FORMAT 和 TIME_FORMAT 函数中format 格式表 |
TIME_FORMAT(time, format) |
时间格式化函数。返回根据参数 format 指定的格式显示的 time 值 |
type 和 expr 取值
type 值 |
预期的 expr 格式 |
MICROSECOND |
微秒数 |
SECOND |
秒数 |
MINUTE |
分钟数 |
HOUR |
小时数 |
DAY |
天数 |
WEEK |
周数 |
MONTH |
月数 |
QUARTER |
季度数 |
YEAR |
年数 |
SECOND_MICROSECOND |
‘秒数 . 微秒数’ |
MINUTE_MICROSECOND |
‘分钟数 . 微秒数’ |
MINUTE_SECOND |
‘分钟数 . 秒数’ |
HOUR_MICROSECOND |
‘小时数 . 微秒数’ |
HOUR_SECOND |
‘小时数 : 分钟数 : 秒数’ |
HOUR_MINUTE |
‘小时数 : 分钟数’ |
DAY_MICROSECOND |
‘天数 . 微秒数’ |
DAY_SECOND |
‘天数 小时数 : 分钟数 : 秒数’ |
DAY_MINUTE |
‘天数 小时数 : 分钟数’ |
DAY_HOUR |
‘天数 小时数’ |
YEAR_MONTH |
‘年数 - 月数’ |
DATE_FORMAT 和 TIME_FORMAT 函数中 format 格式表
格式说明符 |
描述说明 |
%a |
一星期中每天名称的缩写(Sun...Sat) |
%b |
月份的缩写(Jan...Dec) |
%c |
月份的数字表现形式(0...12) |
%D |
带有英语后缀的一个月中的每一天的名称(0th、1st、2nd、3rd) |
%d |
用数字形式表现的每月中的每一天(00...31) |
%e |
用数字形式表现的每月中的每一天(0...31) |
%f |
毫秒(000000...999999) |
%H |
24 时制显示的小时(00...23) |
%h |
12 时制显示的小时(01...12) |
%I |
12 时制显示的小时(01...12) |
%i |
以数字形式表现的分钟数(00...59) |
%j |
一年中的每一天(001...366) |
%k |
24 时制小时的另一种表现格式(0...23) |
%l |
12 时制小时的另一种表现格式(1...12) |
%M |
用完整英文名称表示的月份(January...December) |
%m |
用数字表现的月份(00...12) |
%p |
上午(AM)或下午(PM) |
%r |
12 时制的时间值(hh:mm:ss,后跟 AM 或 PM) |
%S |
秒(00...59) |
%s |
秒(00...59) |
%T |
24 时制的小时(hh:mm:ss) |
%U |
星期(00...53),其中星期天是每星期的开始日 |
%u |
星期(00...53),其中星期一是每星期的开始日 |
%V |
星期(01...53),其中星期天是每星期的开始日,和 %X 一起使用 |
%v |
星期(01...53),其中星期一是每星期的开始日,和 %x 一起使用 |
%W |
一星期中各日名称(Sunday...Saturday) |
%w |
一星期中各日名称(0 代表星期日,6 代表星期六,以此类推) |
%X |
某星期所处年份。其中,星期天是每星期的开始日,采用 4 位数字形式表现,和 %V 一起使用 |
%x |
某星期所处年份。其中,星期一是每星期的开始日,采用 4 位数字形式表现,和 %V 一起使用 |
%Y |
4 位数字表示的年份 |
%y |
2 位数字表示的年份 |