Mysql 函数入门
Posted zero澪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 函数入门相关的知识,希望对你有一定的参考价值。
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 位数字表示的年份 |
以上是关于Mysql 函数入门的主要内容,如果未能解决你的问题,请参考以下文章