精华内容
下载资源
问答
  • MySQL函数大全及用法示例 MySQL函数大全及用法示例 MySQL函数大全及用法示例
  • MySql函数大全

    千次阅读 多人点赞 2019-01-07 00:14:21
    数学函数 绝对值函数ABS(x)和返回圆周率的函数PI() ABS(x)返回x的绝对值 求2,-3.3,和-33的绝对值 PI()返回圆周率π的值,默认的显示小数位数是6位 平方根函数SQRT(x)和求余函数MOD(x,y) ...

    数学函数

    绝对值函数ABS(x)和返回圆周率的函数PI()

    ABS(x)返回x的绝对值
    求2,-3.3,和-33的绝对值
    PI()返回圆周率π的值,默认的显示小数位数是6位
    

    在这里插入图片描述
    在这里插入图片描述

    平方根函数SQRT(x)和求余函数MOD(x,y)

    SQRT(x)返回非负数x的二次方根
    求9,40,-49的二次方根
    负数没有平方根,故-49的返回值是null
    
    MOD(x,y)返回x被y除后的余数,也就是x除以y所得余数,mod()对于带有小数
    部分的数值也起作用,他返回除法运算后的精确余数
    对MOD(31,8),
    MOD(234,10),MOD(45.5,6)进行求余运算
    

    在这里插入图片描述
    在这里插入图片描述

    获取整数的函数CEIL(x),CEILING(x),FLOOR(x)

    CEIL(x)和CEILING(x)意义相同,前者是后者的缩写,返回不小于x的最小整数值,
    并不是四舍五入,返回值转化为一个BIGINT类型
    -3.4为负数,不小于-3.4的最小整数为-3,3.1为正数,不小于3.1的最小整数为4
    
    FLOOR(x)返回不大于x的最大整数
    -3.4为负数,不大于-3.4的最大整数为-4,3.1为正数,不大于3.1的最大整数为3
    

    在这里插入图片描述
    在这里插入图片描述

    获取随机数的函数RAND()和RAND(x)

    RAND(x)返回一个随机浮点值v,范围在0到1之间(即0<=v<=1.0)
    若指定一个整数参数x,则它被用作种子值,用来产生重复序列
    通过RAND()+10,可以获取10到11之间的随机数,
    不带参数x的RAND()产生的参数是不相同的,带参数的将会参数相同的随机数
    

    在这里插入图片描述
    在这里插入图片描述

    函数ROUND(x),round(x,y),TRUNCATE(x,y)

    round(x)返回最接近于参数x的整数,对x值进行四舍五入
    四舍五入之后,只保留各个值的整数部分
    round(x,y),返回最接近参数x的数,其值保留到小数点后的y位,
    若y的值为负值,则保留到左边的y位,保留的小数点左边的相应位数
    直接保存为0,不进行四舍五入
    

    在这里插入图片描述
    在这里插入图片描述

    truncate(x,y)返回被舍去至小数点后y位的数字x,若y的值为0,
    则结果不带小数点或者小数部分。若y的值为负数,则截去(归零)x小数
    点左起第y位开始后面所有地位的值
    rounf(x,y)在截取时会进行四舍五入,而truncate(x,y)直接进行截取,不会四舍五入
    

    在这里插入图片描述

    符号函数SIGN(x)

    sign(x)返回参数的符号,x的值为负或正数时,返回结果分别是-1,0,1
    

    在这里插入图片描述

    幂运算函数POW(x,y),power(x,y),EXP(x)

    pow(x,y)或者power(x,y)返回x的y次乘方的结果值
    exp(x)返回e的x乘方
    

    在这里插入图片描述
    在这里插入图片描述

    对数运算函数

    LOG(x)返回x的自然对数,x相对于基数e的对数
    对数定义域不能为负数,因此log(-3)返回结果为null
    log10(x)返回x的基数为10的对数
    
    

    在这里插入图片描述
    在这里插入图片描述

    角度与弧度相互转换的函数radians(x)和defrees(x)

    使用radians将角度转换为弧度,
    degrees(x)将参数x由弧度转换为角度
    

    在这里插入图片描述

    正弦函数sin(x)和反正弦函数asin(x)

    sin(x)返回x的正弦,其中x为弧度值
    asin(x)返回x的反正弦值,值必须在-1到1之间,否则会返回null
    

    在这里插入图片描述
    在这里插入图片描述

    余弦函数cos(x)和反余弦函数ACOS(x)

    cos(x)返回x的余弦,x为弧度值,cos与acos互为反函数
    

    在这里插入图片描述
    在这里插入图片描述

    正切函数、反正切函数、余切函数

    TAN(x)返回x的正切,其中x为给定的弧度值,
    ATAN(x)返回x的反正切,即正切为x事务值
    COT(x)返回x的余切,与tan互为倒数
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    字符串函数

    计算字符串字符数的长度和字符串长度的函数

    CHAR_LENGTH(str)返回值为字符串str所包含的字符个数,一个多字节字符算作一个单字符
    LENGTH(str)返回值为字符串的字节长度,使用utf8(unicode的一种变
    长字符编码,又称万国码)编码字符集时,一个汉字是两个字节,
    一个数字或者字母算一个字节
    

    在这里插入图片描述
    在这里插入图片描述

    合并字符串函数CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…)

    CONCAT(s1,s2,...)返回结果为连接参数产生的字符串,可能有一个或者多个参数,
    如果有一个参数值为null,返回值为null。
    如果所有参数为非二进制字符串,则返回结果为非二进制字符串,如果参数中含
    有一个二进制字符串,则返回结果为二进制字符串
    

    在这里插入图片描述

    concat_ws(x,s1,s2,...),CONCAT_WS代表concat with separator,是concat()的特殊形式,
    第一个参数x是其它参数的分隔符,分隔符的位置放在要连接的两个字符串之间。
    分隔符可以是一个字符串,也可以是其它参数,如果分割符是null,则结果是null,
    函数会忽略任何分割符参数后的null值,即如果出现null,则忽略此null,继续拼接其它的。
    

    在这里插入图片描述

    替换字符串的函数INSERT(s1,x,len,s2)

    Insert(s1,x,len,s2)返回字符串s1,其子字符串起始于x位置和被s2取代的
    len字符,如果x超过字符串的长度,则返回原始字符串,假如len的长度大于
    其它字符串的长度,则从位置x处开始替换,若任何一个参数为null,则返回值为null
    起始位置小于1,大于s1的长度,均返回s1原字符串。
    

    在这里插入图片描述
    在这里插入图片描述

    字母大小写转换函数

    LOWER(str)或者LCASE(str)可以str字符串中字母字符全部转换成小写字母
    UPPER或者UCASE可以将字符串中所有字母转化为大写
    

    在这里插入图片描述
    在这里插入图片描述

    获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)

    left(s,n)只有两个参数,第一个参数是原字符串,第二个参数是截止位置
    left是左边的意思,函数的意思就是1开始,截取n个字符,或者说截取左边n个字符
    right是右边的意思,含义同上
    

    在这里插入图片描述
    在这里插入图片描述

    填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)

    LPAD(s1,len,s2)返回字符串s1,其左边由字符串s2填补到len字符长度
    假如s1的长度大于len,则返回值被缩短到len字符
    RPAD(s1,len,s2)返回字符串s1,其右边由字符串s2填补到len字符长度
    假如s1的长度大于len,则返回值被缩短到len字符
    

    在这里插入图片描述
    在这里插入图片描述

    删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)

    LTRIM(s) 返回字符串s,字符串s的左侧字符被删除,右边空格不会被删除
    RTRIM(s)返回字符串s,字符串s的右侧字符被删除,左边字符不会被删除
    TRIM(s)返回字符串s,字符串s的两侧字符被删除,中间字符不会被删除
    

    在这里插入图片描述

    删除指定字符串的函数TRIM(s1 from s)

    TRIM(s1 from s) 未指定s1的情况下,删除两端的空格
    指定s1的情况下,删除s两端所有的子串s1
    

    在这里插入图片描述

    重复生成字符串的函数REPEAT(s,n)

    REPEAT(s,n)返回一个s重复n次的字符串s,如果n小于等于0,则返回
    一个空字符串,若s或者n为null,则返回null
    

    在这里插入图片描述

    空格函数SPACE(n)和替换函数REPLACE(s,s1,s2)

    SPACE(n)返回由n个空格组成的字符串
    replace(s,s1,s2)使用字符串s2替换s中的所有字符串s1
    

    在这里插入图片描述
    在这里插入图片描述

    比较字符串大小的函数STRCMP(s1,s2)

    strcmp(s1,s2)  若所有的字符串相同,则返回0,若第一个参数小于第二个,则返回-1,
    其余情况返回1
    

    在这里插入图片描述

    获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len)

    substring(s,n,len)带有len参数的格式,从字符串s返回一个长度同len
    字符相同的子字符串,起始于位置n。
    如果n是负值,则子字符串的位置起始于字符串结尾的n字符,即倒数第n
    个字符,而不是字符串的开头位置
    substring函数与mid函数作用相同
    如果对len使用一个小于1的值,则结果始终是空字符串
    

    在这里插入图片描述
    在这里插入图片描述

    匹配字符串开始位置的函数

    locate(str1,str),position(str1 in str),insert(str,str1)三个函数的作用相同,返回子
    字符串str1在str中的开始位置
    

    在这里插入图片描述

    字符串的逆序函数

    REVERSE(s)将字符串s反转,返回的字符串顺序和s的字符串顺序相反
    

    在这里插入图片描述

    返回指定位置的字符串的函数

    ELT(N,字符串1,字符串2,字符串3,...,字符串N),若n等于1,
    则返回值为字符串1,若n=2,则返回值为字符串2,,以此类推。
    若N小于1或者大于参数的数目,则返回Null
    

    在这里插入图片描述

    返回指定字符串位置的函数FIELD(s,s1,s2,…)

    Field(s,s1,s2,..)返回字符串在列表s1,s2,s3...中第一次出现的位置,
    在找不到s的情况下,返回0,如果s的值为null,则返回值是0,
    原因是null不能同任何值进行同等比较
    

    在这里插入图片描述

    返回子串位置的函数FIND_IN_SET(s1,s2)

    FIND_IN_SET(s1,s2)返回字符串s1在字符串列表s2中出现的位置
    字符串列表是一个由多个','分割的字符串组成的列表,如果s1不在s2中
    或者s2为空字符串,则返回值为0,如果任意一个字符串为null,则返回值是null
    

    在这里插入图片描述

    选取字符串的函数make_set(x,s1,s2,…)

    make_set(x,s1,s2,...)返回由x的二进制数指定的相应的相应位的字符串组成的字符串,s1对应比特1,
    s2对应比特01,以此类推,s1,s2...中的null值不会被添加到结果中
    

    在这里插入图片描述

    1的二进制位0001,4的二进制值为0100,1与4进行或操作后是0101,从右往左第一位
    和第三位为1.make_set(1,'a','b','c')返回第一个字符串;
    make_set(1|4,'hello','nice','world')返回从左端开始的第1和第3
    个字符组成的字符串;null值不会添加到结果中
    

    时间和日期函数

    获取当前日期和获取当前时间的函数

     curdate()和current_date()函数作用相同,将当前日期安照'YYYY-MM-DD'或YYYYMMDD格式的值返回,
     具体格式根据函数在字符串或是数字语境中而定。
    通过下图结果 可以看到,两个函数的作用相同,都是获取系统当前日期,通过+0,将日期型转换为数值型。
    

    在这里插入图片描述

    CURRENT_TIME(),CURTIME()函数作用相同,将当前时间以HH:MM:SS或HHMMSS的格式返回,
    具体格式根据字符串或是数字语境中而定。
    

    在这里插入图片描述

    获取当前日期和时间的函数

    CURRENT_TIMESTAMP()、LOCALTIME()、NOW()和SYSDATE()4个函数的作用相同,
    均返回当前日期和时间值,格式为'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS,具体格式根据
    函数在字符串或数字语境中而定,四个函数返回的结果值是一致的
    

    在这里插入图片描述
    在这里插入图片描述

    UNIX时间戳函数

    unix_timestamp(date)如无参数调用,则返回一个unix时间戳('1970-01-01 00:00:00'GMT之后的秒数)
    作为无符号整数。其中GMT(Greenwich mean time)为格林尼治标准时间。若用date来调用UNIX_TIMESTAMP(),
    他会参数值以'1970-01-01 00:00:00'GMT后的秒数的形式返回。date可以是一个DATE字符串、DATETIME字符串、
    TIMESTAMP或一个当地时间的YYMMDD或YYYYMMDD格式的数字。
    

    在这里插入图片描述

    FROM_UNIXTIME(date)函数把unix时间戳转换为普通格式的时间,与
    UNIX_TIMESTAMP(date)函数互为反函数
    

    在这里插入图片描述

    返回UTC日期的函数和返回UTC时间的函数

    UTC_DATE()返回当前UTC(世界标准世界)日期值,其格式为'YYYY-MM-DD'或YYYYMMDD,
    具体格式取决于函数是否用在字符串或者数字语境中。UTC_DATE()返回值为当前时区的日期值。
    UTC_TIME()返回当前时区的时间值,其格式为'HH:MM:SS'或者HHMMSS,具体格式取决于函数是否
    用在字符串或者数字语境中。
    

    在这里插入图片描述
    在这里插入图片描述

    获取月份的函数MONTH(date)和MONTHNAME(date)

    MONTH(date)返回date对应的月份,范围值从1到12
    MONTHNAME(date)函数返回日期date对应月份的全英文名
    

    在这里插入图片描述

    获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)

    dayname(d)函数返回d对应的工作日的英文名称,例如sunday\monday等
    dayofweek(d)函数返回d对应的一周的索引位置,1表示周日,2表示周一,...7表示周六
    weekday(d)返回d对应的工作日索引,0表示周一,1表示周二...6表示周日
    

    在这里插入图片描述

    获取星期数的函数WEEK(d)和WEEKOFYEAR(d)

    WEEK(d)计算日期d是一年中的第几周
    WEEKOFYEAR(d)计算某一天是一年中的第几周,相当于week(d,3)
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    获取天数的函数DAYOFYEAR(d),DAYOFMONTH(d)

    DAYOFYEAR返回一年中的第几天,范围从1到366
    DAYOFMONTH返回一个月的第几天,范围从1到31
    

    在这里插入图片描述

    获取年份、季度、小时、分钟和秒钟的函数

    YEAR(d)返回d对应的年份,范围从1970-2069
    当年份只有两位时,00-69转换为2000-2069,70-99转换为1970-1999
    

    在这里插入图片描述

    quarter(date) 返回date对应一年中的季度值,范围是1-4
    

    在这里插入图片描述

    minute(time)返回time对应的分钟数,范围是0-59
    

    在这里插入图片描述

    second(time)返回time对应的秒数
    

    在这里插入图片描述

    获取日期的指定值的函数EXTRACT(type from date)

    在这里插入图片描述

    时间与秒钟转换的函数

    time_to_sec(time) 返回已转化为秒的time参数,转换公式为:小时*3600+分钟*60+秒
    sec_to_time(seconds)返回被转换为小时、分钟和秒数的seconds参数值,其格式为'HH:MM:SS'或HHMMSS,
    具体格式根据该函数是否用在字符串或者数字语境中而定
    

    在这里插入图片描述

    计算日期和时间的函数

    计算日期和时间的函数有:DATE_ADD()、ADDDATE(),DATE_SUB()、SUB_DATE(),
    ADDTIME()、SUBTIME()和DATE_DIFF()。
    DATE_ADD(date,INTERVAL expr type)和DATE_SUB(date,INTERVAL expr type),其中
    date是一个DATETIME或者date值,用来指定起始时间。expr是一个表达式,用来指定从起始日期
    添加或者减去的时间间隔值,expr是一个字符串,对于负值的时间间隔,它可以以一个'-'开头
    type是关键词,它表示了表达式被解释的方式。若date参数是一个DATE值,计算会包括YEAR、MONTH、DAY部分
    即(没有时间部分),其结果是一个DATE值,否则将是一个DATETIME值,DATE_ADD和ADDDATE()两个
    函数作用相同,执行日期的加运算。
    

    将日期和时间格式化的函数

    DATE_FORMAT(date,format)根据format指定的格式格式化date值,
    

    条件判断函数

    IF(expr,v1,v2)

    如果表达式expr的结果值为true,则返回v1,如果为false,则返回v2。IF()的返回值为数字值或字符串值,
    具体情况视其所在语境而定
    

    在这里插入图片描述

    IFNULL(v1,v2)函数

    IFNULL(v1,v2)加入v1不为null,则IFNULL()的返回值为V1;否则其返回值为v2。
    IFNULL的返回值是数字还是字符串,根据其具体的语境而定。
    

    在这里插入图片描述

    CASE函数

    CASE expr  WHEN v1 THEN r1 [WHEN  v2 THEN r2][ELSE rn] END
    该函数表示,如果expr的值等于某个vn,则返回对应位置THEN后面的结果。
    如果与所有值都不相等,则返回ELSE后面的rn
    

    在这里插入图片描述

    CASE WHEN v1 THEN r1 [WHEN v2 then r2] [else rn] end;
    该函数表示,当某个vn为true时,返回对应then后面的结果
    

    在这里插入图片描述

    系统信息函数

    MySQL中的系统信息有:数据库的版本号、当前用户名和连接数、系统字符集、最后一个自动生成的ID值等。
    

    获取MySQL版本号、连接数和数据库名的函数

    VERSION()返回指示MySQL服务器版本的字符串,这个字符串使用utf8字符集
    connection_id()返回MySQL数据库当前连接的次数,每个连接都有自己唯一的ID
    show processlist;show full processlist();
    processlist命令的输出结果显示了有哪些线程在运行,不仅可以查看当前所有的连接数,
    还可以查看当前的连接状态,帮助识别出有问题的查询语句等。
    如果是root账号,能看到所有用户的当前连接。如果是其它普通账号,则只能看到自己占用的连接。
    未加full,只列出前100条,加full,则列出全部结果。
    database()和schema()函数返回使用utf8字符集的默认(当前)数据库名
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    获取用户名的函数

    USER()、CURRENT_USER()、SYSTEM_USER()和SESSION_USER()
    这几个函数返回当前被MySQL服务器验证的用户名和主机名组合
    

    在这里插入图片描述

    获取字符串的字符集和排序方式的函数

    CHARSET(str)返回字符串str自变量的字符集
    COLLATION(str)返回字符串str的排列方式,使用不同字符集时,字符串的排列方式不同。
    

    在这里插入图片描述
    在这里插入图片描述

    获取最后一个自动生成的ID值的函数

    SELECT LAST_INSERT_ID();
    

    加/解密函数

    加密函数MD5(str)

    MD5(str)为字符串算出一个MD5 128比特校验和。该值以32位十六进制数字的
    二进制字符串形式返回,若参数为null,则返回null。
    

    在这里插入图片描述

    加密函数ENCODE(str,pswd_str)

    ENCODE(str,pswd_str)使用pswd_str作为密码,加密str。使用DECODE()
    解密结果,是一个和str相同的二进制字符串
    select    encode('secret','cry'),length(encode('secret','cry'));
    

    解密函数DECODE(crypt_str,pswd_str)

    select  decode(encode('secret','cry'),'cry');
    ENCODE与decode互为反函数
    

    其它函数

    格式化函数FORMAT(x,n)

    FORMAT(x,n)将数字x格式化,并以四舍五入的方式保留小数点后n位,结果以字符串的形式返回。
    若n为0,则返回结果不带小数部分。
    

    在这里插入图片描述

    不同进制的数字进行转换的函数

    conv(N,from_base,to_base)函数进行不同进制数间的转换。返回值为N的字符串表示,由
    from_base进制转换为to_base进制。如有任意一个参数为null,则返回值为null。自变量n被理解为
    一个整数,但是可以被指定为一个整数或者字符串。最小基数,而最大基数则是36
    

    在这里插入图片描述

    IP地址与数字相互转换的函数

    INET_ATON(expr)给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数。
    地址可以是4或8bit地址
    产生的数字按照网络字节顺序,如图所示例子,计算方法为209*256^3+41*256^2+123*256+12
    

    在这里插入图片描述

    INET_NTOA(expr)给定一个数字网络地址(4或8bit),返回作为字符串的该地址的点地址表示。
    INET_NTOA和INET_ATON互为反函数
    

    在这里插入图片描述

    改变字符集的函数

    CONVERT(...USING...)带有USING的CONVERT()函数被用来在不同的字符集之间转化数据
    

    在这里插入图片描述

    改变数据类型的函数

    CAST(x,AS type)和CONVERT(x,type)函数将一个类型的值转换为另一个类型的值
    可以转换的type有:BINARY()、CHAR(n)、DATE、TIME、DATETIME、DECIMAL、
    SIGNED、UNSIGNED。
    

    在这里插入图片描述

    加锁函数和解锁函数

    GET_LOCK(str,timeout)
    RELEASE_LOCK(str)
    IS_FREE_LOCK(str)
    IS_USED_LOCK(str)
    
    展开全文
  • 常用的函数有: 1. 字符串函数;主要用于处理字符串。 2. 数值函数;主要用于处理数字。 3. 日期和时间函数;主要用于处理日期和事件。 4. 系统信息函数;获取系统信息。
  • MySql常用函数大全讲解,数学函数 字符串函数 日期和时间函数 条件判断函数 系统信息函数 加密函数 格式化函数
  • MySQL 包含了大量并且丰富的函数,这套 MySQL 函数大全只收集了几十个常用的,剩下的比较罕见的函数我们就不再整理了,读者可以到「MySQL 官网」查询。 可以对 MySQL 常用函数进行简单的分类,大概包括数值型函数、...

    在这里插入图片描述
    MySQL 函数会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值。
    MySQL 包含了大量并且丰富的函数,这套 MySQL 函数大全只收集了几十个常用的,剩下的比较罕见的函数我们就不再整理了,读者可以到「MySQL 官网」查询。
    可以对 MySQL 常用函数进行简单的分类,大概包括数值型函数、字符串型函数、日期时间函数、聚合函数等。

    MySQL 数值型函数

    函数名称作 用
    ABS求绝对值
    SQRT求二次方根
    MOD求余数
    CEIL 和 CEILING 两个函数功能相同,都是返回不小于参数的最小整数,即向上取整
    FLOOR向下取整,返回值转化为一个BIGINT
    RAND生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列
    ROUND对所传参数进行四舍五入
    SIGN返回参数的符号
    POW和 POWER 两个函数的功能相同,都是所传参数的次方的结果值
    SIN求正弦值
    ASIN求反正弦值,与函数 SIN 互为反函数
    COS求余弦值
    ACOS求反余弦值,与函数 COS 互为反函数
    TAN求正切值
    ATAN求反正切值,与函数 TAN 互为反函数
    COT求余切值

    MySQL 字符串函数

    函数名称作 用
    LENGTH计算字符串长度函数,返回字符串的字节长度
    CONCAT合并字符串函数,返回结果为连接参数产生的字符串,参数可以使一个或多个
    INSERT替换字符串函数
    LOWER将字符串中的字母转换为小写
    UPPER将字符串中的字母转换为大写
    LEFT从左侧字截取符串,返回字符串左边的若干个字符
    RIGHT从右侧字截取符串,返回字符串右边的若干个字符
    TRIM删除字符串左右两侧的空格
    REPLACE字符串替换函数,返回替换后的新字符串
    SUBSTRING截取字符串,返回从指定位置开始的指定长度的字符换
    REVERSE字符串反转(逆序)函数,返回与原始字符串顺序相反的字符串

    MySQL 日期和时间函数

    函数名称作 用
    CURDATE和 CURRENT_DATE 两个函数作用相同,返回当前系统的日期值
    CURTIME和 CURRENT_TIME 两个函数作用相同,返回当前系统的时间值
    NOW和 SYSDATE 两个函数作用相同,返回当前系统的日期和时间值
    UNIX_TIMESTAMP获取UNIX时间戳函数,返回一个以 UNIX 时间戳为基础的无符号整数
    FROM_UNIXTIME将 UNIX 时间戳转换为时间格式,与UNIX_TIMESTAMP互为反函数
    MONTH获取指定日期中的月份
    MONTHNAME获取指定日期中的月份英文名称
    DAYNAME获取指定曰期对应的星期几的英文名称
    DAYOFWEEK获取指定日期对应的一周的索引位置值
    WEEK获取指定日期是一年中的第几周,返回值的范围是否为 0〜52 或 1〜53
    DAYOFYEAR获取指定曰期是一年中的第几天,返回值范围是1~366
    DAYOFMONTH获取指定日期是一个月中是第几天,返回值范围是1~31
    YEAR获取年份,返回值范围是 1970〜2069
    TIME_TO_SEC将时间参数转换为秒数
    SEC_TO_TIME将秒数转换为时间,与TIME_TO_SEC 互为反函数
    DATE_ADD和 ADDDATE 两个函数功能相同,都是向日期添加指定的时间间隔
    DATE_SUB和 SUBDATE 两个函数功能相同,都是向日期减去指定的时间间隔
    ADDTIME时间加法运算,在原始时间上添加指定的时间
    SUBTIME时间减法运算,在原始时间上减去指定的时间
    DATEDIFF获取两个日期之间间隔,返回参数 1 减去参数 2 的值
    DATE_FORMAT格式化指定的日期,根据参数返回指定格式的值
    WEEKDAY获取指定日期在一周内的对应的工作日索引

    MySQL 聚合函数

    函数名称作 用
    MAX查询指定列的最大值
    MIN查询指定列的最小值
    COUNT统计查询结果的行数
    SUM求和,返回指定列的总和
    AVG求平均值,返回指定列数据的平均值

    MySQL 流程控制函数

    函数名称作 用
    IF判断,流程控制
    IFNULL判断是否为空
    CASE搜索语句

    1、字符串函数

    ascii(str)
    返回字符串str的第一个字符的ascii值(str是空串时返回0)
    mysql> select ascii(‘2’);
      -> 50
    mysql> select ascii(2);
      -> 50
    mysql> select ascii(‘dete’);
      -> 100

    ord(str)
    如果字符串str句首是单字节返回与ascii()函数返回的相同值。

    如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode…]
    mysql> select ord(‘2’);
      -> 50

    conv(n,from_base,to_base)
    对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)
    mysql> select conv(“a”,16,2);
      -> ‘1010’
    mysql> select conv(“6e”,18,8);
      -> ‘172’
    mysql> select conv(-17,10,-18);
      -> ‘-h’
    mysql> select conv(10+“10”+‘10’+0xa,10,10);
      -> ‘40’

    bin(n)
    把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))
    mysql> select bin(12);
      -> ‘1100’

    oct(n)
    把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))
    mysql> select oct(12);
      -> ‘14’

    hex(n)
    把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))
    mysql> select hex(255);
      -> ‘ff’

    char(n,…)
    返回由参数n,…对应的ascii代码字符组成的一个字串(参数是n,…是数字序列,null值被跳过)
    mysql> select char(77,121,83,81,‘76’);
      -> ‘mysql’
    mysql> select char(77,77.3,‘77.3’);
      -> ‘mmm’

    concat(str1,str2,…)
    把参数连成一个长字符串并返回(任何参数是null时返回null)
    mysql> select concat(‘my’, ‘s’, ‘ql’);
      -> ‘mysql’
    mysql> select concat(‘my’, null, ‘ql’);
      -> null
    mysql> select concat(14.3);
      -> ‘14.3’

    length(str)
    octet_length(str)
    char_length(str)
    character_length(str)
    返回字符串str的长度(对于多字节字符char_length仅计算一次)
    mysql> select length(‘text’);
      -> 4
    mysql> select octet_length(‘text’);
      -> 4

    locate(substr,str)
    position(substr in str)
    返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)
    mysql> select locate(‘bar’, ‘foobarbar’);
      -> 4
    mysql> select locate(‘xbar’, ‘foobar’);
      -> 0

    locate(substr,str,pos)
    返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)
    mysql> select locate(‘bar’, ‘foobarbar’,5);
      -> 7

    instr(str,substr)
    返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)
    mysql> select instr(‘foobarbar’, ‘bar’);
      -> 4
    mysql> select instr(‘xbar’, ‘foobar’);
      -> 0

    lpad(str,len,padstr)
    用字符串padstr填补str左端直到字串长度为len并返回
    mysql> select lpad(‘hi’,4,’??’);
      -> ‘??hi’

    rpad(str,len,padstr)
    用字符串padstr填补str右端直到字串长度为len并返回
    mysql> select rpad(‘hi’,5,’?’);
      -> ‘hi???’

    left(str,len)
    返回字符串str的左端len个字符
    mysql> select left(‘foobarbar’, 5);
      -> ‘fooba’

    right(str,len)
    返回字符串str的右端len个字符
    mysql> select right(‘foobarbar’, 4);
      -> ‘rbar’

    substring(str,pos,len)
    substring(str from pos for len)
    mid(str,pos,len)

    返回字符串str的位置pos起len个字符mysql> select substring(‘quadratically’,5,6);
      -> ‘ratica’

    substring(str,pos)
    substring(str from pos)

    返回字符串str的位置pos起的一个子串
    mysql> select substring(‘quadratically’,5);
      -> ‘ratically’
    mysql> select substring(‘foobarbar’ from 4);
      -> ‘barbar’

    substring_index(str,delim,count)
    返回从字符串str的第count个出现的分隔符delim之后的子串
    (count为正数时返回左端,否则返回右端子串)
    mysql> select substring_index(‘www.mysql.com’, ‘.’, 2);
      -> ‘www.mysql’
    mysql> select substring_index(‘www.mysql.com’, ‘.’, -2);
      -> ‘mysql.com’

    ltrim(str)
    返回删除了左空格的字符串str
    mysql> select ltrim(’ barbar’);
      -> ‘barbar’

    rtrim(str)
    返回删除了右空格的字符串str
    mysql> select rtrim('barbar ');
      -> ‘barbar’

    trim([[both | leading | trailing] [remstr] from] str)
    返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)
    mysql> select trim(’ bar ');
      -> ‘bar’
    mysql> select trim(leading ‘x’ from ‘xxxbarxxx’);
      -> ‘barxxx’
    mysql> select trim(both ‘x’ from ‘xxxbarxxx’);
      -> ‘bar’
    mysql> select trim(trailing ‘xyz’ from ‘barxxyz’);
      -> ‘barx’

    soundex(str)
    返回str的一个同音字符串(听起来“大致相同”字符串有相同的
    同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)
    mysql> select soundex(‘hello’);
      -> ‘h400’
    mysql> select soundex(‘quadratically’);
      -> ‘q36324’

    space(n)
    返回由n个空格字符组成的一个字符串
    mysql> select space(6);
      -> ’ ’

    replace(str,from_str,to_str)
    用字符串to_str替换字符串str中的子串from_str并返回
    mysql> select replace(‘www.mysql.com’, ‘w’, ‘ww’);
      -> ‘wwwwww.mysql.com’

    repeat(str,count)
    返回由count个字符串str连成的一个字符串(任何参数为null时
    返回null,count<=0时返回一个空字符串)
    mysql> select repeat(‘mysql’, 3);
      -> ‘mysqlmysqlmysql’

    reverse(str)
    颠倒字符串str的字符顺序并返回
    mysql> select reverse(‘abc’);
      -> ‘cba’

    insert(str,pos,len,newstr)
    把字符串str由位置pos起len个字符长的子串替换为字符串
    newstr并返回
    mysql> select insert(‘quadratic’, 3, 4, ‘what’);
      -> ‘quwhattic’

    elt(n,str1,str2,str3,…)
    返回第n个字符串(n小于1或大于参数个数返回null)
    mysql> select elt(1, ‘ej’, ‘heja’, ‘hej’, ‘foo’);
      -> ‘ej’
    mysql> select elt(4, ‘ej’, ‘heja’, ‘hej’, ‘foo’);
      -> ‘foo’

    field(str,str1,str2,str3,…)
    返回str等于其后的第n个字符串的序号(如果str没找到返回0)
    mysql> select field(‘ej’, ‘hej’, ‘ej’, ‘heja’, ‘hej’,
    ‘foo’);
      -> 2
    mysql> select field(‘fo’, ‘hej’, ‘ej’, ‘heja’, ‘hej’,
    ‘foo’);
      -> 0

    find_in_set(str,strlist)
    返回str在字符串集strlist中的序号(任何参数是null则返回
    null,如果str没找到返回0,参数1包含","时工作异常)
    mysql> select find_in_set(‘b’,‘a,b,c,d’);
      -> 2

    make_set(bits,str1,str2,…)
    把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
    位置的字串选入字串集并返回(null串不添加到结果中)
    mysql> select make_set(1,‘a’,‘b’,‘c’);
      -> ‘a’
    mysql> select make_set(1 | 4,‘hello’,‘nice’,‘world’);
      -> ‘hello,world’
    mysql> select make_set(0,‘a’,‘b’,‘c’);
      -> ‘’

    export_set(bits,on,off,[separator,[number_of_bits]])
    按bits排列字符串集,只有当位等于1时插入字串on,否则插入
    off(separator默认值",",number_of_bits参数使用时长度不足补0
    而过长截断)
    mysql> select export_set(5,‘y’,‘n’,’,’,4)
      -> y,n,y,n

    lcase(str)
    lower(str)

    返回小写的字符串str
    mysql> select lcase(‘quadratically’);
      -> ‘quadratically’

    ucase(str)
    upper(str)

    返回大写的字符串str
    mysql> select ucase(‘quadratically’);
      -> ‘quadratically’

    load_file(file_name)
    读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
    不完整,没有权限,长度大于max_allowed_packet会返回null)
    mysql> update table_name set blob_column=load_file
    ("/tmp/picture") where id=1;

    2、数学函数

    abs(n)
    返回n的绝对值
    mysql> select abs(2);
      -> 2
    mysql> select abs(-32);
      -> 32

    sign(n)
    返回参数的符号(为-1、0或1)
    mysql> select sign(-32);
      -> -1
    mysql> select sign(0);
      -> 0
    mysql> select sign(234);
      -> 1

    mod(n,m)
    取模运算,返回n被m除的余数(同%操作符)
    mysql> select mod(234, 10);
      -> 4
    mysql> select 234 % 10;
      -> 4
    mysql> select mod(29,9);
      -> 2

    floor(n)
    返回不大于n的最大整数值
    mysql> select floor(1.23);
      -> 1
    mysql> select floor(-1.23);
      -> -2

    ceiling(n)
    返回不小于n的最小整数值
    mysql> select ceiling(1.23);
      -> 2
    mysql> select ceiling(-1.23);
      -> -1

    round(n,d)
    返回n的四舍五入值,保留d位小数(d的默认值为0)
    mysql> select round(-1.23);
      -> -1
    mysql> select round(-1.58);
      -> -2
    mysql> select round(1.58);
      -> 2
    mysql> select round(1.298, 1);
      -> 1.3
    mysql> select round(1.298, 0);
      -> 1

    exp(n)
    返回值e的n次方(自然对数的底)
    mysql> select exp(2);
      -> 7.389056
    mysql> select exp(-2);
      -> 0.135335

    log(n)
    返回n的自然对数
    mysql> select log(2);
      -> 0.693147
    mysql> select log(-2);
      -> null

    log10(n)
    返回n以10为底的对数
    mysql> select log10(2);
      -> 0.301030
    mysql> select log10(100);
      -> 2.000000
    mysql> select log10(-100);
      -> null

    pow(x,y)
    power(x,y)

     返回值x的y次幂
    mysql> select pow(2,2);
      -> 4.000000
    mysql> select pow(2,-2);
      -> 0.250000

    sqrt(n)
     返回非负数n的平方根
    mysql> select sqrt(4);
      -> 2.000000
    mysql> select sqrt(20);
      -> 4.472136

    pi()
     返回圆周率
    mysql> select pi();
      -> 3.141593

    cos(n)
     返回n的余弦值
    mysql> select cos(pi());
      -> -1.000000

    sin(n)
     返回n的正弦值
    mysql> select sin(pi());
      -> 0.000000

    tan(n)
    返回n的正切值
    mysql> select tan(pi()+1);
      -> 1.557408

    acos(n)
     返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)
    mysql> select acos(1);
      -> 0.000000
    mysql> select acos(1.0001);
      -> null
    mysql> select acos(0);
      -> 1.570796

    asin(n)
    返回n反正弦值
    mysql> select asin(0.2);
      -> 0.201358
    mysql> select asin(‘foo’);
      -> 0.000000

    atan(n)
    返回n的反正切值
    mysql> select atan(2);
      -> 1.107149
    mysql> select atan(-2);
      -> -1.107149
    atan2(x,y)
     返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)
    mysql> select atan(-2,2);
      -> -0.785398
    mysql> select atan(pi(),0);
      -> 1.570796

    cot(n)
    返回x的余切
    mysql> select cot(12);
      -> -1.57267341
    mysql> select cot(0);
      -> null

    rand()
    rand(n)

    返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)

    mysql> select rand();
      -> 0.5925
    mysql> select rand(20);
      -> 0.1811
    mysql> select rand(20);
      -> 0.1811
    mysql> select rand();
      -> 0.2079
    mysql> select rand();
      -> 0.7888

    degrees(n)
    把n从弧度变换为角度并返回
    mysql> select degrees(pi());
      -> 180.000000

    radians(n)
    把n从角度变换为弧度并返回
    mysql> select radians(90);
      -> 1.570796

    truncate(n,d)
    保留数字n的d位小数并返回
    mysql> select truncate(1.223,1);
      -> 1.2
    mysql> select truncate(1.999,1);
      -> 1.9
    mysql> select truncate(1.999,0);
      -> 1

    least(x,y,…)
    返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)
    mysql> select least(2,0);
      -> 0
    mysql> select least(34.0,3.0,5.0,767.0);
      -> 3.0
    mysql> select least(“b”,“a”,“c”);
      -> “a”

    greatest(x,y,…)
    返回最大值(其余同least())
    mysql> select greatest(2,0);
      -> 2
    mysql> select greatest(34.0,3.0,5.0,767.0);
      -> 767.0
    mysql> select greatest(“b”,“a”,“c”);
      -> “c”

    3、时期时间函数

    dayofweek(date)
    返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)
    mysql> select dayofweek(‘1998-02-03’);
      -> 3

    weekday(date)
    返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。

    mysql> select weekday(‘1997-10-04 22:23:00’);
      -> 5
    mysql> select weekday(‘1997-11-05’);
      -> 2

    dayofmonth(date)
    返回date是一月中的第几日(在1到31范围内)
    mysql> select dayofmonth(‘1998-02-03’);
      -> 3

    dayofyear(date)
    返回date是一年中的第几日(在1到366范围内)
    mysql> select dayofyear(‘1998-02-03’);
      -> 34

    month(date)
    返回date中的月份数值
    mysql> select month(‘1998-02-03’);
      -> 2

    dayname(date)
    返回date是星期几(按英文名返回)
    mysql> select dayname(“1998-02-05”);
      -> ‘thursday’

    monthname(date)
    返回date是几月(按英文名返回)
    mysql> select monthname(“1998-02-05”);
      -> ‘february’

    quarter(date)
    返回date是一年的第几个季度
    mysql> select quarter(‘98-04-01’);
      -> 2

    week(date,first)
    返回date是一年的第几周(first默认值0,first取值1表示周一是
    周的开始,0从周日开始)
    mysql> select week(‘1998-02-20’);
      -> 7
    mysql> select week(‘1998-02-20’,0);
      -> 7
    mysql> select week(‘1998-02-20’,1);
      -> 8

    year(date)
    返回date的年份(范围在1000到9999)
    mysql> select year(‘98-02-03’);
      -> 1998

    hour(time)
    返回time的小时数(范围是0到23)
    mysql> select hour(‘10:05:03’);
      -> 10

    minute(time)
    返回time的分钟数(范围是0到59)
    mysql> select minute(‘98-02-03 10:05:03’);
      -> 5

    second(time)
    返回time的秒数(范围是0到59)
    mysql> select second(‘10:05:03’);
      -> 3

    period_add(p,n)
    增加n个月到时期p并返回(p的格式yymm或yyyymm)
    mysql> select period_add(9801,2);
      -> 199803

    period_diff(p1,p2)
    返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)
    mysql> select period_diff(9802,199703);
      -> 11

    date_add(date,interval expr type)
    date_sub(date,interval expr type)
    adddate(date,interval expr type)
    subdate(date,interval expr type)

    对日期时间进行加减法运算
    (adddate()和subdate()是date_add()和date_sub()的同义词,也
    可以用运算符+和-而不是函数
    date是一个datetime或date值,expr对date进行加减法的一个表
    达式字符串type指明表达式expr应该如何被解释
     [type值 含义 期望的expr格式]:
     second 秒 seconds
     minute 分钟 minutes
     hour 时间 hours
     day 天 days
     month 月 months
     year 年 years
     minute_second 分钟和秒 “minutes:seconds”
     hour_minute 小时和分钟 “hours:minutes”
     day_hour 天和小时 “days hours”
     year_month 年和月 “years-months”
     hour_second 小时, 分钟, “hours:minutes:seconds”
     day_minute 天, 小时, 分钟 “days hours:minutes”
     day_second 天, 小时, 分钟, 秒 “days
    hours:minutes:seconds”
     expr中允许任何标点做分隔符,如果所有是date值时结果是一个
    date值,否则结果是一个datetime值)
     如果type关键词不完整,则mysql从右端取值,day_second因为缺
    少小时分钟等于minute_second)
     如果增加month、year_month或year,天数大于结果月份的最大天
    数则使用最大天数)
    mysql> select “1997-12-31 23:59:59” + interval 1 second;

    -> 1998-01-01 00:00:00
    mysql> select interval 1 day + “1997-12-31”;
      -> 1998-01-01
    mysql> select “1998-01-01” - interval 1 second;
      -> 1997-12-31 23:59:59
    mysql> select date_add(“1997-12-31 23:59:59”,interval 1
    second);
      -> 1998-01-01 00:00:00
    mysql> select date_add(“1997-12-31 23:59:59”,interval 1
    day);
      -> 1998-01-01 23:59:59
    mysql> select date_add(“1997-12-31 23:59:59”,interval
    “1:1” minute_second);
      -> 1998-01-01 00:01:00
    mysql> select date_sub(“1998-01-01 00:00:00”,interval “1
    1:1:1” day_second);
      -> 1997-12-30 22:58:59
    mysql> select date_add(“1998-01-01 00:00:00”, interval “-1
    10” day_hour);
      -> 1997-12-30 14:00:00
    mysql> select date_sub(“1998-01-02”, interval 31 day);
      -> 1997-12-02
    mysql> select extract(year from “1999-07-02”);
      -> 1999
    mysql> select extract(year_month from “1999-07-02
    01:02:03”);
      -> 199907
    mysql> select extract(day_minute from “1999-07-02
    01:02:03”);
      -> 20102

    to_days(date)
    返回日期date是西元0年至今多少天(不计算1582年以前)
    mysql> select to_days(950501);
      -> 728779
    mysql> select to_days(‘1997-10-07’);
      -> 729669

    from_days(n)
     给出西元0年至今多少天返回date值(不计算1582年以前)
    mysql> select from_days(729669);
      -> ‘1997-10-07’

    date_format(date,format)
     根据format字符串格式化date值
     (在format字符串中可用标志符:
     %m 月名字(january……december)
     %w 星期名字(sunday……saturday)
     %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
     %y 年, 数字, 4 位
     %y 年, 数字, 2 位
     %a 缩写的星期名字(sun……sat)
     %d 月份中的天数, 数字(00……31)
     %e 月份中的天数, 数字(0……31)
     %m 月, 数字(01……12)
     %c 月, 数字(1……12)
     %b 缩写的月份名字(jan……dec)
     %j 一年中的天数(001……366)
     %h 小时(00……23)
     %k 小时(0……23)
     %h 小时(01……12)
     %i 小时(01……12)
     %l 小时(1……12)
     %i 分钟, 数字(00……59)
     %r 时间,12 小时(hh:mm:ss [ap]m)
     %t 时间,24 小时(hh:mm:ss)
     %s 秒(00……59)
     %s 秒(00……59)
     %p am或pm
     %w 一个星期中的天数(0=sunday ……6=saturday )
     %u 星期(0……52), 这里星期天是星期的第一天
     %u 星期(0……52), 这里星期一是星期的第一天
     %% 字符% )
    mysql> select date_format(‘1997-10-04 22:23:00’,’%w %m %
    y’);
      -> ‘saturday october 1997’
    mysql> select date_format(‘1997-10-04 22:23:00’,’%h:%i:%
    s’);
      -> ‘22:23:00’
    mysql> select date_format(‘1997-10-04 22:23:00’,’%d %y %a
    %d %m %b %j’);
      -> ‘4th 97 sat 04 10 oct 277’
    mysql> select date_format(‘1997-10-04 22:23:00’,’%h %k %i
    %r %t %s %w’);
      -> ‘22 22 10 10:23:00 pm 22:23:00 00 6’

    time_format(time,format)
     和date_format()类似,但time_format只处理小时、分钟和秒(其
    余符号产生一个null值或0)

    curdate()
    current_date()

     以’yyyy-mm-dd’或yyyymmdd格式返回当前日期值(根据返回值所
    处上下文是字符串或数字)
    mysql> select curdate();
      -> ‘1997-12-15’
    mysql> select curdate() + 0;
      -> 19971215

    curtime()
    current_time()

     以’hh:mm:ss’或hhmmss格式返回当前时间值(根据返回值所处上
    下文是字符串或数字)
    mysql> select curtime();
      -> ‘23:50:26’
    mysql> select curtime() + 0;
      -> 235026

    now()
    sysdate()
    current_timestamp()

     以’yyyy-mm-dd hh:mm:ss’或yyyymmddhhmmss格式返回当前日期
    时间(根据返回值所处上下文是字符串或数字)
    mysql> select now();
      -> ‘1997-12-15 23:50:26’
    mysql> select now() + 0;
      -> 19971215235026

    unix_timestamp()
    unix_timestamp(date)

    返回一个unix时间戳(从’1970-01-01 00:00:00’gmt开始的秒
    数,date默认值为当前时间)
    mysql> select unix_timestamp();
      -> 882226357
    mysql> select unix_timestamp(‘1997-10-04 22:23:00’);
      -> 875996580

    from_unixtime(unix_timestamp)
    以’yyyy-mm-dd hh:mm:ss’或yyyymmddhhmmss格式返回时间戳的
    值(根据返回值所处上下文是字符串或数字)
    mysql> select from_unixtime(875996580);
      -> ‘1997-10-04 22:23:00’
    mysql> select from_unixtime(875996580) + 0;
      -> 19971004222300

    from_unixtime(unix_timestamp,format)
    以format字符串格式返回时间戳的值
    mysql> select from_unixtime(unix_timestamp(),’%y %d %m %
    h:%i:%s %x’);
      -> ‘1997 23rd december 03:43:30 x’

    sec_to_time(seconds)
    以’hh:mm:ss’或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)
    mysql> select sec_to_time(2378);
      -> ‘00:39:38’
    mysql> select sec_to_time(2378) + 0;
      -> 3938

    time_to_sec(time)
    返回time值有多少秒
    mysql> select time_to_sec(‘22:23:00’);
      -> 80580
    mysql> select time_to_sec(‘00:39:38’);
      -> 2378

    4、转换函数

    cast
    用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
    实例:select cast(a as unsigned) as b from cardserver where order by b desc;
    convert:
    用法:convert(字段,数据类型)
    实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

    在这里插入图片描述
    关注微信公众号带你知道更多~

    展开全文
  • mysql函数大全

    2007-10-30 21:42:42
    mysql函数大全 word文档的
  • mysql函数大全之数字函数

    千次阅读 2018-05-01 10:46:24
    转载出处:http://blog.sina.com.cn/s/blog_4586764e0100h5ct.html原博主:无尽空虚mysql函数大全之字符函数:https://blog.csdn.net/hxfghgh/article/details/80152701mysql函数大全之时间函数:...

    转载出处:http://blog.sina.com.cn/s/blog_4586764e0100h5ct.html

    原博主:无尽空虚


    mysql函数大全之字符函数:https://blog.csdn.net/hxfghgh/article/details/80152701

    mysql函数大全之时间函数:https://blog.csdn.net/hxfghgh/article/details/80152773

    mysql函数大全之数字函数:https://blog.csdn.net/hxfghgh/article/details/80152767


    数学函数
    ABS(N)  
     返回N的绝对值  
    mysql> select ABS(2);    
      -> 2    
    mysql> select ABS(-32);    
      -> 32    
       
    SIGN(N)  
     返回参数的符号(为-1、0或1)  
    mysql> select SIGN(-32);    
      -> -1    
    mysql> select SIGN(0);    
      -> 0    
    mysql> select SIGN(234);    
      -> 1    
     
    MOD(N,M)    
     取模运算,返回N被M除的余数(同%操作符)    
    mysql> select MOD(234, 10);    
      -> 4    
    mysql> select 234 % 10;    
      -> 4    
    mysql> select MOD(29,9);    
      -> 2    
     
    FLOOR(N)  
     返回不大于N的最大整数值  
    mysql> select FLOOR(1.23);    
      -> 1    
    mysql> select FLOOR(-1.23);    
      -> -2    
     
    CEILING(N)  
     返回不小于N的最小整数值  
    mysql> select CEILING(1.23);    
      -> 2    
    mysql> select CEILING(-1.23);    
      -> -1    
     
    ROUND(N,D)  
     返回N的四舍五入值,保留D位小数(D的默认值为0)  
    mysql> select ROUND(-1.23);    
      -> -1    
    mysql> select ROUND(-1.58);    
      -> -2    
    mysql> select ROUND(1.58);    
      -> 2    
    mysql> select ROUND(1.298, 1);    
      -> 1.3    
    mysql> select ROUND(1.298, 0);    
      -> 1    
     
    EXP(N)  
     返回值e的N次方(自然对数的底)  
    mysql> select EXP(2);    
      -> 7.389056    
    mysql> select EXP(-2);    
      -> 0.135335    
     
    LOG(N)  
     返回N的自然对数  
    mysql> select LOG(2);    
      -> 0.693147    
    mysql> select LOG(-2);    
      -> NULL    
     
    LOG10(N)  
     返回N以10为底的对数  
    mysql> select LOG10(2);    
      -> 0.301030    
    mysql> select LOG10(100);    
      -> 2.000000    
    mysql> select LOG10(-100);    
      -> NULL    
     
    POW(X,Y)    
    POWER(X,Y)    
     返回值X的Y次幂  
    mysql> select POW(2,2);    
      -> 4.000000    
    mysql> select POW(2,-2);    
      -> 0.250000  
     
    SQRT(N)  
     返回非负数N的平方根  
    mysql> select SQRT(4);    
      -> 2.000000    
    mysql> select SQRT(20);    
      -> 4.472136    
     
    PI()    
     返回圆周率   
    mysql> select PI();    
      -> 3.141593    
     
    COS(N)  
     返回N的余弦值  
    mysql> select COS(PI());  
      -> -1.000000    
     
    SIN(N)  
     返回N的正弦值   
    mysql> select SIN(PI());    
      -> 0.000000    
     
    TAN(N)  
     返回N的正切值  
    mysql> select TAN(PI()+1);    
      -> 1.557408    
     
    ACOS(N)  
     返回N反余弦(N是余弦值,在-1到1的范围,否则返回NULL)  
    mysql> select ACOS(1);    
      -> 0.000000    
    mysql> select ACOS(1.0001);    
      -> NULL    
    mysql> select ACOS(0);    
      -> 1.570796    
     
    ASIN(N)  
     返回N反正弦值  
    mysql> select ASIN(0.2);    
      -> 0.201358    
    mysql> select ASIN('foo');    
      -> 0.000000    
     
    ATAN(N)  
     返回N的反正切值  
    mysql> select ATAN(2);    
      -> 1.107149    
    mysql> select ATAN(-2);    
      -> -1.107149    
    ATAN2(X,Y)    
     返回2个变量X和Y的反正切(类似Y/X的反正切,符号决定象限)  
    mysql> select ATAN(-2,2);    
      -> -0.785398    
    mysql> select ATAN(PI(),0);    
      -> 1.570796    
     
    COT(N)  
     返回X的余切  
    mysql> select COT(12);    
      -> -1.57267341    
    mysql> select COT(0);    
      -> NULL    
     
    RAND()  
    RAND(N)    
     返回在范围0到1.0内的随机浮点值(可以使用数字N作为初始值) 
     
    mysql> select RAND();    
      -> 0.5925    
    mysql> select RAND(20);    
      -> 0.1811    
    mysql> select RAND(20);    
      -> 0.1811    
    mysql> select RAND();    
      -> 0.2079    
    mysql> select RAND();    
      -> 0.7888    
     
    DEGREES(N)  
     把N从弧度变换为角度并返回  
    mysql> select DEGREES(PI());    
      -> 180.000000    
     
    RADIANS(N)  
     把N从角度变换为弧度并返回   
    mysql> select RADIANS(90);    
      -> 1.570796    
     
    TRUNCATE(N,D)    
     保留数字N的D位小数并返回  
    mysql> select TRUNCATE(1.223,1);    
      -> 1.2    
    mysql> select TRUNCATE(1.999,1);    
      -> 1.9    
    mysql> select TRUNCATE(1.999,0);    
      -> 1    
     
    LEAST(X,Y,...)    
     返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下
    文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实
    数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
    mysql> select LEAST(2,0);    
      -> 0    
    mysql> select LEAST(34.0,3.0,5.0,767.0);    
      -> 3.0    
    mysql> select LEAST("B","A","C");    
      -> "A"    
     
    GREATEST(X,Y,...)    
     返回最大值(其余同LEAST())  
    mysql> select GREATEST(2,0);    
      -> 2    
    mysql> select GREATEST(34.0,3.0,5.0,767.0);    
      -> 767.0    
    mysql> select GREATEST("B","A","C");    
      -> "C"     

    展开全文
  • MySQL常用函数大全(总结篇)

    万次阅读 多人点赞 2019-02-19 14:08:33
    本篇文章讲解是是MySQL函数方法,涵盖所有的MySQL常见的方法。下面是本篇文章的目录结构,可以根据自己需求划到相应段落查找: 一、数字函数 二、字符串函数 三、日期函数 四、MySQL高级函数 (一)数字函数 1、...

    本篇文章讲解是是MySQL的函数方法,涵盖所有的MySQL常见的方法。下面是本篇文章的目录结构,可以根据自己需求点击右方目录查找:

    • 一、数字函数
    • 二、字符串函数
    • 三、日期函数
    • 四、MySQL高级函数

    (一)数字函数

    1、ABS(x) 返回x的绝对值

    SELECT ABS(-1);
    ---- 返回1
    

    2、AVG(expression) 返回一个表达式的平均值,expression 是一个字段
    在这里插入图片描述

    SELECT AVG(age) FROM student;
    

    在这里插入图片描述

    3、CEIL(x)/CEILING(x) 返回大于或等于 x 的最小整数

    SELECT CEIL(1.5);
    SELECT CEILING(1.5);   
    ---- 返回2
    

    4、FLOOR(x) 返回小于或等于 x 的最大整数

    SELECT FLOOR(1.5); 
    ---- 返回1
    

    5、EXP(x) 返回 e 的 x 次方

    SELECT EXP(3);
    ---- 计算 e 的三次方,返回20.085536923188
    

    6、GREATEST(expr1, expr2, expr3, …) 返回列表中的最大值

    SELECT GREATEST(3, 12, 34, 8, 25);
    ---- 返回以下数字列表中的最大值34
    

    7、LEAST(expr1, expr2, expr3, …) 返回列表中的最小值

    SELECT LEAST(3, 12, 34, 8, 25);
    ---- 返回以下数字列表中的最小值3
    

    8、LN 返回数字的自然对数

    SELECT LN(2);
    ---- 返回 2 的自然对数:0.6931471805599453
    

    9、LOG(x) 返回自然对数(以 e 为底的对数)

    SELECT LOG(20.085536923188);
    ---- 返回 3
    

    10、MAX(expression)返回字段 expression 中的最大值

    SELECT MAX(age) AS maxAge FROM Student;
    ---- age最大值
    

    11、MIN(expression)返回字段 expression 中的最大值

    SELECT MIN(age) AS minAge FROM Student;
    ---- age最小值
    

    12、POW(x,y)/POWER(x,y)返回 x 的 y 次方

    SELECT POW(2,3);
    SELECT POWER(2,3);
    ---- 返回2 的 3 次方:8
    

    13、RAND()返回 0 到 1 的随机数

    SELECT RAND();
    ---- 返回 0 到 1 的随机数,若()里面有数字,RAND(x),x相同时,返回值相同
    

    14、ROUND(x)返回离 x 最近的整数

    SELECT ROUND(1.23456);
    ---- 返回 1
    

    15、SIGN(x)返回 x 的符号,x 是负数、0、正数分别返回 -1、0 和 1

    SELECT SIGN(-10);
    ---- 返回 -1
    

    16、SQRT(x)返回x的平方根

    SELECT SQRT(25);
    ---- 返回5
    

    17、SUM(expression)返回指定字段的总和

    SELECT SUM(age) AS totalAage FROM Student;
    ---- 返回age的总和
    

    18、TRUNCATE(x,y)返回数值 x 保留到小数点后 y 位的值(与 ROUND 最大的区别是不会进行四舍五入)

    SELECT TRUNCATE(1.23456,3);
    ---- 返回1.234
    

    (二)字符串函数

    1、返回字符串 s 的第一个字符的 ASCII 码

    SELECT ASCII('AB');
    ---- 返回A的ASCII码值:65
    

    2、LENGTH/CHAR_LENGTH(s)/CHARACTER_LENGTH(s)返回字符串 s 的字符数

    SELECT LENGTH('1234');
    ---- 返回4
    

    3、CONCAT(s1,s2…sn)字符串 s1,s2 等多个字符串合并为一个字符串

    SELECT CONCAT('hel','llo');
    ---- 返回hello
    

    4、FIND_IN_SET(s1,s2)返回在字符串s2中与s1匹配的字符串的位置

    SELECT FIND_IN_SET("c", "a,b,c,d,e");
    ---- 返回3
    

    5、FORMAT(x,n)函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入

    SELECT FORMAT(250500.5634, 2); 
    ---- 返回250,500.56
    

    6、INSERT(s1,x,len,s2)字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串

    SELECT INSERT("google.com", 1, 6, "runnob");
    ---- 返回runoob.com
    

    7、LOCATE(s1,s)从字符串 s 中获取 s1 的开始位置

    SELECT LOCATE('st','myteststring');
    ---- 返回5
    

    8、LCASE(s)/LOWER(s)将字符串 s 的所有字母变成小写字母

    SELECT LOWER('RUNOOB');
    ---- 返回runoob
    

    9、UCASE(s)/UPPER(s)将字符串 s 的所有字母变成大写字母

    SELECT UCASE('runoob');
    ---- 返回RUNOOB
    

    10、TRIM(s)去掉字符串 s 开始和结尾处的空格

    SELECT TRIM('    RUNOOB    ');
    ---- 返回RUNOOB
    

    11、LTRIM(s)去掉字符串 s 开始处的空格

    SELECT LTRIM('    RUNOOB    ');
    ---- 返回 ’RUNOOB   ‘
    

    12、RTRIM(s)去掉字符串 s 结尾处的空格

    SELECT RTRIM('    RUNOOB    ');
    ---- 返回 ’    RUNOOB‘
    

    13、SUBSTR(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串

    SELECT SUBSTR("RUNOOB", 2, 3) AS ExtractString;
    ---- 从字符串 RUNOOB 中的第 2 个位置截取 3个 字符,返回UNO
    

    14、SUBSTR/SUBSTRING(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串

    SELECT SUBSTR/SUBSTRING("RUNOOB", 2, 3);
    ---- 从字符串 RUNOOB 中的第 2 个位置截取 3个 字符,返回UNO
    

    15、POSITION(s1 IN s)从字符串 s 中获取 s1 的开始位置

    SELECT POSITION('b' in 'abc');
    ---- 返回2
    

    16、REPEAT(s,n)将字符串 s 重复 n 次

    SELECT REPEAT('runoob',3);
    ---- 返回runoobrunoobrunoob
    

    17、REVERSE(s)将字符串s的顺序反过来

    SELECT REVERSE('abc');
    ---- 返回cba
    

    18、STRCMP(s1,s2)比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1

    SELECT STRCMP("runoob", "runoob");
    ---- 返回0
    

    (三)日期函数

    1、CURDATE()/CURRENT_DATE()返回当前日期

    SELECT CURDATE();
    SELECT CURRENT_DATE();
    ---- 返回2019-02-19
    

    2、CURRENT_TIME()/CURTIME()返回当前时间

    SELECT CURRENT_TIME();
    ---- 返回11:40:45
    

    3、CURRENT_TIMESTAMP()返回当前日期和时间

    SELECT CURRENT_TIMESTAMP();
    ---- 返回2019-02-19 11:41:32
    

    4、ADDDATE(d,n)计算起始日期 d 加上 n 天的日期

    SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY);
    ---- 返回2017-06-25
    

    5、ADDTIME(t,n)时间 t 加上 n 秒的时间

    SELECT ADDTIME('2011-11-11 11:11:11', 5);
    ---- 返回2011-11-11 11:11:16
    

    6、DATE()从日期或日期时间表达式中提取日期值

    SELECT DATE("2017-06-15 11:11:16");
    ---- 返回2017-06-15
    

    7、DAY(d)返回日期值 d 的日期部分

    SELECT DAY("2017-06-15"); 
    ---- 返回15
    

    8、DATEDIFF(d1,d2)计算日期 d1->d2 之间相隔的天数

    SELECT DATEDIFF('2001-01-01','2001-02-02'); 
    ---- 返回-32
    

    9、DATE_FORMAT按表达式 f的要求显示日期 d

    SELECT DATE_FORMAT('2011.11.11 11:11:11','%Y-%m-%d %r');
    ---- 返回2011-11-11 11:11:11 AM
    

    10、DAYNAME(d)返回日期 d 是星期几,如 Monday,Tuesday

    SELECT DAYNAME('2011-11-11 11:11:11');
    ---- 返回Friday
    

    11、DAYOFMONTH(d)计算日期 d 是本月的第几天

    SELECT DAYOFMONTH('2011-11-11 11:11:11');
    ---- 返回11
    

    12、DAYOFWEEK(d)日期 d 今天是星期几,1 星期日,2 星期一,以此类推

    SELECT DAYOFWEEK('2011-11-11 11:11:11');
    ---- 返回6
    

    13、DAYOFYEAR(d)计算日期 d 是本年的第几天

    SELECT DAYOFYEAR('2011-11-11 11:11:11');
    ---- 返回315
    

    14、EXTRACT(type FROM d)从日期 d 中获取指定的值,type 指定返回的值
    type可取值为:
    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

    SELECT EXTRACT(MINUTE FROM '2011-12-13 14:15:16');
    ---- 返回15
    

    15、DAYOFWEEK(d)日期 d 今天是星期几,1 星期日,2 星期一,以此类推

    SELECT DAYOFWEEK('2011-11-11 11:11:11');
    ---- 返回6
    

    16、UNIX_TIMESTAMP()得到时间戳

    SELECT UNIX_TIMESTAMP('2019-2-19');
    SELECT UNIX_TIMESTAMP(expression);
    ---- 返回1550505600
    

    17、FROM_UNIXTIME()时间戳转日期

    SELECT FROM_UNIXTIME(1550505600);
    ---- 返回2019-02-19 00:00:00
    SELECT FROM_UNIXTIME(1550505600, '%Y-%m-%d');
    ---- 返回2019-02-19
    

    (四)MySQL高级函数

    1、IF(expr,v1,v2)如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2

    SELECT IF(1>0,'yes','no');
    ---- 返回yes
    

    2、CONV(x,f1,f2)返回 f1 进制数变成 f2 进制数

    SELECT CONV(13,10,2);
    ---- 返回1101
    

    3、CURRENT_USER()/SESSION_USER()/SYSTEM_USER()/USER()返回当前用户
    4、DATABASE()返回当前数据库名
    5、VERSION()返回数据库的版本号
    在这里插入图片描述

    有不正确的地方,欢迎前来指正!

    展开全文
  • MySQL函数大全,MySQL常用函数汇总

    千次阅读 2019-05-13 23:08:43
    MySQL 包含了大量并且丰富的函数,这套 MySQL 函数大全只收集了几十个常用的,剩下的比较罕见的函数我们就不再整理了,读者可以到「MySQL 官网」查询。 可以对 MySQL 常用函数进行简单的分类,大概包括数值型函数、...
  • mysql内置函数大全

    万次阅读 多人点赞 2018-09-16 11:23:13
    mysql内置函数列表可以从mysql官方文档查询,这里仅分类简单介绍一些可能会用到的函数。 1 数学函数 abs(x) pi() mod(x,y) sqrt(x) ceil(x)或者ceiling(x) rand(),rand(N):返回0-1间的浮点数,使...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 609,091
精华内容 243,636
关键字:

mysql函数大全

mysql 订阅
友情链接: 48041013.rar