精华内容
下载资源
问答
  • Mysql常用函数

    2017-06-30 09:02:28
    Mysql常用函数 字符串函数 字符串函数是最常用的一种函数。下表是比较常用的字符串函数。 常用函数 常用函数 concat(s1,s2,...sn)函数:把传入的参数链接成为一个字符串。任何字符串和null进行连接...



    Mysql常用函数

    • 字符串函数

    字符串函数是最常用的一种函数。下表是比较常用的字符串函数。

    Mysql常用函数

    常用函数

    Mysql常用函数

    常用函数

    concat(s1,s2,...sn)函数:把传入的参数链接成为一个字符串。任何字符串和null进行连接的结果都将是null。

    Mysql常用函数

    concat函数

    insert(str,x,instr)函数:将字符串str从X位置开始,y字符长的子串替换为字符串instr。将“xcjmmjr820”第八位开始以后的三个字符换为910.

    Mysql常用函数

    insert函数

    left(str,x)和right(str,x)函数:分别返回字符串最左边的x个字符和最右边的x个字符。如果第二个擦书是null,那么不返回任何字符串。

    Mysql常用函数

    left函数

    lpad(str,n,pad)和rpad(str,n,pad)函数:用字符串pad对str最左边和最右边进行填充,知道长度为n个字符长度

    Mysql常用函数

    lpad和rpad

    repeat(str,x):返回str重复x次的结果。

    Mysql常用函数

    repeat函数

    replace(str,a,b)函数:用字符串b替换字符串str中所有出现的字符串a。

    Mysql常用函数

    replace

    strcmp(s1,s2)函数:比较字符串s1和s2的ASCII码值的大小。

    如果s1比s2下,那么返回-1;如果s1和s2相等,那么返回0;如果s1和s2大,那么返回1。

    Mysql常用函数

    stamp函数

    substring(str,x,y)函数:返回从字符串str中的第X位置起y个字符长度的字串。这个函数经常用来对给定字符串进行提取。

    Mysql常用函数

    substring函数

    可能有些没怎么用过吧,还是蛮了解一下~~


    Mysql常用函数

    • 字符串函数

    字符串函数是最常用的一种函数。下表是比较常用的字符串函数。

    Mysql常用函数

    常用函数

    Mysql常用函数

    常用函数

    concat(s1,s2,...sn)函数:把传入的参数链接成为一个字符串。任何字符串和null进行连接的结果都将是null。

    Mysql常用函数

    concat函数

    insert(str,x,instr)函数:将字符串str从X位置开始,y字符长的子串替换为字符串instr。将“xcjmmjr820”第八位开始以后的三个字符换为910.

    Mysql常用函数

    insert函数

    left(str,x)和right(str,x)函数:分别返回字符串最左边的x个字符和最右边的x个字符。如果第二个擦书是null,那么不返回任何字符串。

    Mysql常用函数

    left函数

    lpad(str,n,pad)和rpad(str,n,pad)函数:用字符串pad对str最左边和最右边进行填充,知道长度为n个字符长度

    Mysql常用函数

    lpad和rpad

    repeat(str,x):返回str重复x次的结果。

    Mysql常用函数

    repeat函数

    replace(str,a,b)函数:用字符串b替换字符串str中所有出现的字符串a。

    Mysql常用函数

    replace

    strcmp(s1,s2)函数:比较字符串s1和s2的ASCII码值的大小。

    如果s1比s2下,那么返回-1;如果s1和s2相等,那么返回0;如果s1和s2大,那么返回1。

    Mysql常用函数

    stamp函数

    substring(str,x,y)函数:返回从字符串str中的第X位置起y个字符长度的字串。这个函数经常用来对给定字符串进行提取。

    Mysql常用函数

    substring函数

     GROUP_CONCAT( leavedate,'*', `morning`, '*', `afternoon`ORDER BY leavedate)  分组链接函数,把leavedate字段和morning、afternoon连接起来,并用*号隔开,组成一个字符串,大多数情况下和GROUP BY配合使用,否则查询结果会变为一条。leavedate表示请假日期,morning表示上午afternoon表示下午,morning和afternoon的值可以使1或者0,1表示请假了,0表示未请假,morning和afternoon组成完整的一天leavedate。

    展开全文
  • MySQL 常用函数

    千次阅读 2017-06-06 22:32:57
    MySQL 常用函数 1.字符串类函数 (1)CONCAT(s1,s2,s3,.....) 连接字符串 例如:SELECT CONCAT('1','2') FROM DUAL;  输出:12 (2)LOWER(s) 将字符串全部变成小写 例如:SELECT LOWER('ABC') FROM DUAL; 输出:...

    MySQL 常用函数

    1.字符串类函数

    (1)CONCAT(s1,s2,s3,.....) 连接字符串
     例如:SELECT CONCAT('1','2') FROM DUAL;
     输出:12
    (2)LOWER(s) 将字符串全部变成小写
     例如:SELECT LOWER('ABC') FROM DUAL;
     输出:abc
    (3)UPPER(s) 将字符串全部变成大写
     例如:SELECT UPPER('abc') FROM DUAL;
       输出:ABC
    (4)LTRIM(s) 去除字符串左侧的空格
     例如:select LTRIM('           abc') from dual;
     输出:abc
    (5)RTRIM(s) 去除字符串右侧的空格
    例如:select LTRIM('abc ') from dual;
    输出:abc
    (6)TRIM(s) 去除字符串左右两侧的空格
    例如:select LTRIM( 'abc ') from dual;
    输出:abc
    (7)LPAD(s,len,pad) 用字符串pad来对s左侧进行填充,直至长度达到len
    例如:SELECT LPAD('1',5,'0') FROM DUAL;
    输出:00001
    (8)RPAD(s,len,pad) 用字符串pad来对s右侧进行填充,直至长度达到len
    例如:SELECT RPAD('1',5,'0') FROM DUAL;
    输出:10000
    (9)REPEAT(s,x) 将s重复x后返回
    例如:select REPEAT('a',5) from dual;
    输出:aaaaa
    (10)REPLACE(s,form,target) 将字符串中包含form的字符替换成target
    例如:SELECT REPLACE('abc','a','A') FROM DUAL;
    输出:Abc
    (11)STRCMP(s1,s2) 比较s1与s2,如果相同返回0,s2大于s1返回1,s2小于s1返回-1
    例如:SELECT STRCMP('a','b'),STRCMP('a','a'),STRCMP('b','a') FROM DUAL;
    输出:-1       0       1
    (12)LEFT(s,x) 返回字符串左侧x个字符
    例如:SELECT LEFT('abc',2) FROM DUAL;
    输出:ab
    (13)RIGHT(s,x) 返回字符串右侧x个字符
    例如:SELECT RIGHT('abc',2) FROM DUAL;
    输出:bc
    (14)MID(s,x,y) 返回字符串x位置开始y个字符
    例如:SELECT MID('abcd',3,2) FROM DUAL;
    输出:cd
    (15)SUBSTRING(s,x,y) 返回字符串x位子开始y个字符,与MID基本一样
    例如:SELECT SUBSTRING('abcd',3,2) FROM DUAL;
    输出:cd
    (16)INSERT(s,x,y,form) 将字符串x位置开始y个字符替换成form字符
    例如:SELECT INSERT('abcd',3,2,'FF') FROM DUAL;
    输出:abFF
    (17)LENGTH(s) 返回s的长度
    例如:SELECT LENGTH('123') FROM DUAL;
    输出:3
    (18)REVERSE(s) 返回s颠倒顺序
    例如:SELECT REVERSE('abc') FROM DUAL;
    输出:cba

    2.数字类函数

    (1)CEIL(n) 返回大于n最大的整数
    例如:SELECT CEIL(100.1) FROM DUAL;
    输出:101
    (2)FLOOR(n) 返回小于n最大的整数
    例如:SELECT CEIL(100.1) FROM DUAL;
    输出:100
    (3)RAND() 返回0到1的随机数
    例如:SELECT RAND() FROM DUAL;
    输出:0.13824381133377908
    (4)ROUND(n,y) 将n四舍五入保留y位小数
    例如:SELECT ROUND(10.127,2) FROM DUAL;
    输出:10.13
    (5)TRUNCATE(n,y) 将n保留y位小数
    例如:SELECT TRUNCATE(10.1277777,2) FROM DUAL;
    输出:10.12

    3.日期类函数

    (1)NOW() 返回当前日期时间
    例如:SELECT NOW() FROM DUAL;
    输出:2017-06-06 20:44:58
    2)CURDATE() 返回当前日期
    例如:SELECT CURDATE() FROM DUAL;
    输出:2017-06-06
    3)CURTIME() 返回当前时间
    例如:select CURTIME() from dual;
    输出:20:46:15
    4)WEEK(date) 返回日期为一年中的周
    例如:SELECT WEEK('2017-06-06') FROM DUAL;
    输出:23
    5)YEAR(date) 返回日期中的年
    例如:SELECT YEAR('2017-06-06') FROM DUAL;
    输出:2017
    6)DATE_FORMAT(s,pattern) 格式化日期
    例如:SELECT DATE_FORMAT(NOW(),'%Y%m%d') FROM DUAL;
    输出:20170606
    格式化参数:
    %y  表示两位数字年份。例如:(2017返回17)
    %Y 表示四位数字年份。例如:(2017返回2017)
    %m 表示两位数字月份。例如:(01,02,....,12)
    %c  表示数字的月份。例如:(1,2,3,4.....,12)
    %M 表示月明,英文名称。
    %d  表示两位数字的天数。例如:(01,02,03,.....31)
    %e 表示数字的天数。例如(1,2,3,4,.....,31)
    %H 表示两位数字的小时数,24小时制。例如:(01,02,.....,24)
    %i  表示两位数字的分钟数。例如:(01,02...,60)
    %S %s 表示两位数字的秒数。例如:(01,02...,60)
    7)DATEDIFF(d1,d2) 返回d1与d2相差的天数
    例如:SELECT DATEDIFF('2017-06-07','2017-06-06') FROM DUAL;
    输出:1
    8)DATE_ADD(d,INTERVAL y type) 给日期加上指定类型y值
    例如:select DATE_ADD('2017-06-07',Interval 1 month) from dual;
    输出:2017-07-07
    Type参数:
    YEAR 表示年
    MONTH 表示月
    DAY 表示日
    HOUR 表示小时
    MINUTE 表示分钟
    SECOND 表示秒
    (9)TO_DAYS(date) 返回date从0年以来的天数。

    4.流程控制类函数

    (1)IF(v,t,f) 如果v为真返回t,否则返回f
    例如:SELECT IF(1!=1,'1','2') FROM DUAL;
    输出:2
    (2)IFNULL(v1,v2) 如果v1不为null返回v1,否则返回v2
    例如:SELECT IFNULL(NULL,'1') FROM DUAL;
    输出:1
    (3)CASE WHEN v then v1 end 判断如果v为真返回v1
    例如:SELECT CASE WHEN 1=1 THEN 'true' ELSE 'false' END FROM DUAL;
    输出:true
    例如:SELECT CASE WHEN 1!=1 THEN 'true' WHEN 2=2 THEN 'test' ELSE 'false' END FROM DUAL;
    输出:test

    5.转换类函数

    (1)CAST(v as type) 转换数据类型。
    Type参数:
    字符型:CHAR
    日期:DATE     
    时间:TIME
    日期时间型:DATETIME
    浮点数:DECIMAL
    整数:SIGNED
    无符号整数:UNSIGNED

    6.数据库类函数

    (1)DATABASE() 返回当前数据库名称
    2)VERSION() 返回当前数据库版本
    3)INET_ATON(ip) 返回数字表示的IP
    4)INET_NTOA(num) 将数字表示的IP转换为IP
    5)PASSWORD(s) 返回加密版本
    6)MD5(s) 返回MD5加密值
    展开全文
  • MySQL常用函数

    千次阅读 2016-07-30 12:55:53
    MySQL常用函数表 数学函数 作用 ABS(x) 返回x的绝对值 CEIL(x),CEILING(x) 返回大于或者等于x的最小整数 FLOOR(x) 返回小于或者等于x的最大整数 RAND() 返回0~1的随机数 RAND(x) 返回0~1的随机数,x值相...

    MySQL常用函数表

    数学函数 作用
    ABS(x) 返回x的绝对值
    CEIL(x),CEILING(x) 返回大于或者等于x的最小整数
    FLOOR(x) 返回小于或者等于x的最大整数
    RAND() 返回0~1的随机数
    RAND(x) 返回0~1的随机数,x值相同时返回的随机数相同
    SIGN(x) 返回x的符号,x是负数、0、正数分别返回-1、0和1
    PI() 返回圆周率
    TRUNCATE(x,y) 返回数值x保留到小数点后y位的值
    ROUND(x) 返回离x最近的整数
    ROUND(x,y) 保留x小数点后y位的值,但截断时要进行四舍五入
    POW(x,y),POWER(x,y) 返回x的y次方
    SQRT(x) 返回x的平方根
    EXP(x) 返回e的x次方
    MOD(x,y) 返回x除以y以后的余数
    LOG(x) 返回自然对数(以e为底的对数)
    LOG10(x) 返回以10为底的对数

    常用字符串函数表

    字符串函数 作用
    CHAR_LENGTH(s) 返回字符串s的位数
    LENGTH(s) 返回字符串s的长度
    CONTACT(s1,s2,…) 将字符串s1,s2等多个字符串合并为一个字符串
    CONTACT_WS(x,s1,s2,..) 同CONTAC(S1,S2,…)函数,但是每个字符串要直接加上x
    INSERT(s1,x,len,s2) 将字符串s2替换s1的位置开始长度为len的字符串
    UPPER(s),UCASE(s) 将字符串s的所有字母都变成大写字母
    LOWER(s),LCASE(s) 将字符串s的所有字母都变成小写字母
    LEFT(s,n) 返回字符串s前n个字符
    RIGHT(s,n) 返回字符串s后n个字符
    LPAD(s1,len,s2) 字符串s2来填充s1的开始处,使字符串的长度达到len
    RPAD(s1,len,s2) 字符串s2来填充s1的结尾处,使字符串的长度达到len
    LTRIM(s) 去掉字符串s开始处的空格
    RTRIM(s) 去掉字符串s结尾处的空格
    TRIM(s) 去掉字符串s开始处和结尾处的空格
    TRIM(s1 FROM s) 去掉字符串s开始处和结尾处的字符串s1
    REPEAT(s,n) 将字符串s重复n次
    SPACE(n) 返回空格n次
    REPLACE(s,s1,s2) 用字符串s2代替字符串s中的字符串s1
    STRCMP(s1,s2) 比较字符串s1,s2
    SUBSTRING(s,n,len) 获取从字符串s中第n个位置开始长度为len的字符串
    MID(s,n,len) 同SUBSTRING(s,n,len)
    LOCATE(s1,s),POSITION(s1 IN S) 从字符串s中获取字符串s1的开始位置
    INSTR(s,s1) 从字符串s中获取字符串s1的开始位置
    REVERSE(s) 将字符串s的顺序反过来
    ELT(n,s1,s2,…) 返回第n个字符串
    FIELD(s,s1,s2,…) 返回第一个与字符串s匹配的字符串的位置
    FIND_IN_SET(s1,s2) 返回在字符串s2中与字符串s1匹配的字符串的位置
    MAKE_SET(x,s1,s2,…) 按x的二进制数从s1,s2,…,sn中选取字符串

    日期和时间函数

    日期和时间函数 作用
    CURDATE(),CURRENT_DATE() 返回当前日期,如2016-07-30
    CURTIME(),CURRENT_TIME() 返回当前时间,如22:13:41
    NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),SYSDATE(),LOCALTIMESTAMP() 返回当前日期和时间
    UNIX_TIMESTAMP() 以UNIX时间戳的形式返回当前时间
    UNIX_TIMESTAMP(d) 将时间d以UNIX时间戳的形式返回
    FROM_UNIXTIME(d) 把UNIX时间戳的时间转换为普通格式时间
    UTC_DATE() 返回UTC日期
    UTC_TIME() 返回UTC时间
    MONTH(d) 返回日期d中月份值,范围为1~12
    MONTHNAME(d) 返回日期d中的月份名称,如January,Febuary
    DAYNAME(d) 返回日期d是星期几,如Monday,Tuesday
    DAYOFWEEK(d) 返回日期d是星期几,如1是星期一,2是星期二等
    WEEKDAY(d) 返回日期d是星期几,如0是星期一,1是星期二等
    WEEK(d) 计算日期d是本年的第几周,范围0~53
    WEEKOFYEAR 计算日期d是本年的第几周,范围1~54
    DAYOFYEAR(d) 计算日期d是本年的第几天
    DAYOFMONTH(d) 计算日期d是本月的第几天
    YEAR(d) 返回日期d的年份值
    QUARTER(d) 返回日期d是第几个季度,范围1~4
    HOUR(t) 返回时间t中的小时值
    MINUTE(t) 返回时间t中的分钟值
    SECOND(t) 返回时间t中的秒钟值
    EXTRACT(type FROM d) 从日期d中获取指定值,type指定返回的值,如YEAR,HOUR等
    TIME_TO_SEC(t) 将时间t转换为秒
    SEC_TO_TIME(s) 将以秒为单位的时间s转换为时分秒的格式
    DATEDIFF(d1,d2) 计算日期d1~d2之间相隔的天数
    SUBDATE(d,n) 计算起始日期d减去n天的日期

    MySQL系统函数

    系统函数 作用
    VERSION() 返回数据库的版本号
    CONNECTION_ID 返回服务器的连接数
    DATABASE(),SCHEMA() 返回当前数据库名
    USER(),SYSTEM_USER(),SESSION_USER() 返回当前用户
    CURRENT_USER() 返回当前用户
    CHARSET(str) 返回字符串str的字符集
    COLLACTION(str) 返回字符串str的字符排列方式
    LAST_INSERT_ID() 返回最近生成的AUTO_INCREMENET值

    MySQL自定义函数

      除了MySQL自带的内置函数外,我们还可以自己自定义函数。默认的子程序和当前数据库相关联,如果要把一个子程序和数据库相关联起来,可以在创建子程序的时候为其指定数据库名db_name.function_name
    创建函数的语句形式如下:

    CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL}
        SONAME shared_library_name

      MySQL支持在当前用户下自定义变量,该用户定义的变量不能被其他客户端使用,当用户退出客户端时,该客户端连接的所有变量将被释放。变量的形式为@var_name,变量的申明有两种方式,如下:

    mysql> SET @t1=0, @t2=0, @t3=0; #使用set关键字申明变量
    mysql> SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3; #直接使用select,但是要注意给变量赋值时要使用:=这种形式
    mysql>DELIMITER $$ #以上把分号转换成双美元符。

    一个简单的不带参数的函数

    mysql> CREATE FUNCTION myTime()
    mysql> RETURNS varchar(30) ##定义返回的参数
    mysql> RETURN date_format(now(), "%Y%m%d%H%i%s秒"); 函数体

    一个带有参数的函数:

    mysql> CREATE FUNCTION MySum(num1 SMALLINT UNSIGNED, num2 SMALLINT UNSIGNED)
    mysql> RETURN FLOAT(3, 2)
    mysql> RETURN (num1 + num2);

    使用BEGIN…END复合语句构造的函数:

    mysql> CREATE FUNCTION addUser(name varchar(20), gender varchar(10))
    mysql> RETURNS varchar(255)
    mysql> BEGIN  ##用来表示SQL语句的开始指导end结束
    mysql> INSERT INTO table_name (name, gender) VALUES (name, gender);
    mysql> RETURN (SELECT count(*) FROM table_name);
    mysql> END

    其他详见http://blog.csdn.net/u013457382/article/details/51155412

    展开全文
  • mysql常用函数

    千次阅读 2016-11-03 19:42:31
    一、数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP(x) 返回值e(自然对数的底)的x次方 FLOOR(x) 返回小于x的最大整数值 ...
    一、数学函数
    ABS(x)   返回x的绝对值
    BIN(x)   返回x的二进制(OCT返回八进制,HEX返回十六进制)
    CEILING(x)   返回大于x的最小整数值
    EXP(x)   返回值e(自然对数的底)的x次方
    FLOOR(x)   返回小于x的最大整数值
    GREATEST(x1,x2,...,xn)返回集合中最大的值
    LEAST(x1,x2,...,xn)      返回集合中最小的值
    LN(x)                    返回x的自然对数
    LOG(x,y)返回x的以y为底的对数
    MOD(x,y)                 返回x/y的模(余数)
    PI()返回pi的值(圆周率)
    RAND()返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。
    ROUND(x,y)返回参数x的四舍五入的有y位小数的值
    SIGN(x) 返回代表数字x的符号的值
    SQRT(x) 返回一个数的平方根
    TRUNCATE(x,y)            返回数字x截短为y位小数的结果

    二、聚合函数(常用于GROUP BY从句的SELECT查询中)
    AVG(col)返回指定列的平均值
    COUNT(col)返回指定列中非NULL值的个数
    MIN(col)返回指定列的最小值
    MAX(col)返回指定列的最大值
    SUM(col)返回指定列的所有值之和
    GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果

    三、字符串函数
    ASCII(char)返回字符的ASCII码值
    BIT_LENGTH(str)返回字符串的比特长度
    CONCAT(s1,s2...,sn)将s1,s2...,sn连接成字符串
    CONCAT_WS(sep,s1,s2...,sn)将s1,s2...,sn连接成字符串,并用sep字符间隔
    INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果
    FIND_IN_SET(str,list)分析逗号分隔的list列表,如果发现str,返回str在list中的位置
    LCASE(str)或LOWER(str) 返回将字符串str中所有字符改变为小写后的结果
    LEFT(str,x)返回字符串str中最左边的x个字符
    LENGTH(s)返回字符串str中的字符数
    LTRIM(str) 从字符串str中切掉开头的空格
    POSITION(substr,str) 返回子串substr在字符串str中第一次出现的位置
    QUOTE(str) 用反斜杠转义str中的单引号
    REPEAT(str,srchstr,rplcstr)返回字符串str重复x次的结果
    REVERSE(str) 返回颠倒字符串str的结果
    RIGHT(str,x) 返回字符串str中最右边的x个字符
    RTRIM(str) 返回字符串str尾部的空格
    STRCMP(s1,s2)比较字符串s1和s2
    TRIM(str)去除字符串首部和尾部的所有空格
    UCASE(str)或UPPER(str) 返回将字符串str中所有字符转变为大写后的结果

    四、日期和时间函数
    CURDATE()或CURRENT_DATE() 返回当前的日期
    CURTIME()或CURRENT_TIME() 返回当前的时间
    DATE_ADD(date,INTERVAL int keyword)返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECTDATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH);
    DATE_FORMAT(date,fmt)  依照指定的fmt格式格式化日期date值
    DATE_SUB(date,INTERVAL int keyword)返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);
    DAYOFWEEK(date)   返回date所代表的一星期中的第几天(1~7)
    DAYOFMONTH(date)  返回date是一个月的第几天(1~31)
    DAYOFYEAR(date)   返回date是一年的第几天(1~366)
    DAYNAME(date)   返回date的星期名,如:SELECT DAYNAME(CURRENT_DATE);
    FROM_UNIXTIME(ts,fmt)  根据指定的fmt格式,格式化UNIX时间戳ts
    HOUR(time)   返回time的小时值(0~23)
    MINUTE(time)   返回time的分钟值(0~59)
    MONTH(date)   返回date的月份值(1~12)
    MONTHNAME(date)   返回date的月份名,如:SELECT MONTHNAME(CURRENT_DATE);
    NOW()    返回当前的日期和时间
    QUARTER(date)   返回date在一年中的季度(1~4),如SELECT QUARTER(CURRENT_DATE);
    WEEK(date)   返回日期date为一年中第几周(0~53)
    YEAR(date)   返回日期date的年份(1000~9999)
    一些示例:
    获取当前系统时间:SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
    SELECT EXTRACT(YEAR_MONTH FROM CURRENT_DATE);
    SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);
    SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);
    返回两个日期值之间的差值(月数):SELECT PERIOD_DIFF(200302,199802);
    在Mysql中计算年龄:
    SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)),'%Y')+0 AS age FROM employee;
    这样,如果Brithday是未来的年月日的话,计算结果为0。
    下面的SQL语句计算员工的绝对年龄,即当Birthday是未来的日期时,将得到负值。
    SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthday, '%Y') -(DATE_FORMAT(NOW(), '00-%m-%d') <DATE_FORMAT(birthday, '00-%m-%d')) AS age from employee

    五、加密函数
    AES_ENCRYPT(str,key)  返回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENCRYPT的结果是一个二进制字符串,以BLOB类型存储
    AES_DECRYPT(str,key)  返回用密钥key对字符串str利用高级加密标准算法解密后的结果
    DECODE(str,key)   使用key作为密钥解密加密字符串str
    ENCRYPT(str,salt)   使用UNIXcrypt()函数,用关键词salt(一个可以惟一确定口令的字符串,就像钥匙一样)加密字符串str
    ENCODE(str,key)   使用key作为密钥加密字符串str,调用ENCODE()的结果是一个二进制字符串,它以BLOB类型存储
    MD5()    计算字符串str的MD5校验和
    PASSWORD(str)   返回字符串str的加密版本,这个加密过程是不可逆转的,和UNIX密码加密过程使用不同的算法。
    SHA()    计算字符串str的安全散列算法(SHA)校验和
    示例:
    SELECT ENCRYPT('root','salt');
    SELECT ENCODE('xufeng','key');
    SELECT DECODE(ENCODE('xufeng','key'),'key');#加解密放在一起
    SELECT AES_ENCRYPT('root','key');
    SELECT AES_DECRYPT(AES_ENCRYPT('root','key'),'key');
    SELECT MD5('123456');
    SELECT SHA('123456');

    六、控制流函数
    MySQL有4个函数是用来进行条件操作的,这些函数可以实现SQL的条件逻辑,允许开发者将一些应用程序业务逻辑转换到数据库后台。
    MySQL控制流函数:
    CASE WHEN[test1] THEN [result1]...ELSE [default] END如果testN是真,则返回resultN,否则返回default
    CASE [test] WHEN[val1] THEN [result]...ELSE [default]END  如果test和valN相等,则返回resultN,否则返回default
    IF(test,t,f)   如果test是真,返回t;否则返回f
    IFNULL(arg1,arg2) 如果arg1不是空,返回arg1,否则返回arg2
    NULLIF(arg1,arg2) 如果arg1=arg2返回NULL;否则返回arg1
    这些函数的第一个是IFNULL(),它有两个参数,并且对第一个参数进行判断。如果第一个参数不是NULL,函数就会向调用者返回第一个参数;如果是NULL,将返回第二个参数。
    如:SELECT IFNULL(1,2), IFNULL(NULL,10),IFNULL(4*NULL,'false');
    NULLIF()函数将会检验提供的两个参数是否相等,如果相等,则返回NULL,如果不相等,就返回第一个参数。
    如:SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1);
    和许多脚本语言提供的IF()函数一样,MySQL的IF()函数也可以建立一个简单的条件测试,这个函数有三个参数,第一个是要被判断的表达式,如果表达式为真,IF()将会返回第二个参数,如果为假,IF()将会返回第三个参数。
    如:SELECTIF(1<10,2,3),IF(56>100,'true','false');
    IF()函数在只有两种可能结果时才适合使用。然而,在现实世界中,我们可能发现在条件测试中会需要多个分支。在这种情况下,MySQL提供了CASE函数,它和PHP及Perl语言的switch-case条件例程一样。
    CASE函数的格式有些复杂,通常如下所示:
    CASE [expression to be evaluated]
    WHEN [val 1] THEN [result 1]
    WHEN [val 2] THEN [result 2]
    WHEN [val 3] THEN [result 3]
    ......
    WHEN [val n] THEN [result n]
    ELSE [default result]
    END
    这里,第一个参数是要被判断的值或表达式,接下来的是一系列的WHEN-THEN块,每一块的第一个参数指定要比较的值,如果为真,就返回结果。所有的WHEN-THEN块将以ELSE块结束,当END结束了所有外部的CASE块时,如果前面的每一个块都不匹配就会返回ELSE块指定的默认结果。如果没有指定ELSE块,而且所有的WHEN-THEN比较都不是真,MySQL将会返回NULL。
    CASE函数还有另外一种句法,有时使用起来非常方便,如下:
    CASE
    WHEN [conditional test 1] THEN [result 1]
    WHEN [conditional test 2] THEN [result 2]
    ELSE [default result]
    END
    这种条件下,返回的结果取决于相应的条件测试是否为真。
    示例:
    mysql>SELECT CASE 'green'
         WHEN 'red' THEN 'stop'
         WHEN 'green' THEN 'go' END;
    SELECT CASE 9 WHEN 1 THEN 'a' WHEN 2 THEN 'b' ELSE 'N/A' END;
    SELECT CASE WHEN (2+2)=4 THEN 'OK' WHEN(2+2)<>4 THEN 'not OK' END ASSTATUS;
    SELECT Name,IF((IsActive = 1),'已激活','未激活') AS RESULT FROMUserLoginInfo;
    SELECT fname,lname,(math+sci+lit) AS total,
    CASE WHEN (math+sci+lit) < 50 THEN 'D'
    WHEN (math+sci+lit) BETWEEN 50 AND 150 THEN 'C'
    WHEN (math+sci+lit) BETWEEN 151 AND 250 THEN 'B'
    ELSE 'A' END
    AS grade FROM marks;
    SELECT IF(ENCRYPT('sue','ts')=upass,'allow','deny') AS LoginResultFROM users WHERE uname = 'sue';#一个登陆验证

    七、格式化函数
    DATE_FORMAT(date,fmt)  依照字符串fmt格式化日期date值
    FORMAT(x,y)   把x格式化为以逗号隔开的数字序列,y是结果的小数位数
    INET_ATON(ip)   返回IP地址的数字表示
    INET_NTOA(num)   返回数字所代表的IP地址
    TIME_FORMAT(time,fmt)  依照字符串fmt格式化时间time值
    其中最简单的是FORMAT()函数,它可以把大的数值格式化为以逗号间隔的易读的序列。
    示例:
    SELECT FORMAT(34234.34323432,3);
    SELECT DATE_FORMAT(NOW(),'%W,%D %M %Y %r');
    SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');
    SELECT DATE_FORMAT(19990330,'%Y-%m-%d');
    SELECT DATE_FORMAT(NOW(),'%h:%i %p');
    SELECT INET_ATON('10.122.89.47');
    SELECT INET_NTOA(175790383);

    八、类型转化函数
    为了进行数据类型转化,MySQL提供了CAST()函数,它可以把一个值转化为指定的数据类型。类型有:BINARY,CHAR,DATE,TIME,DATETIME,SIGNED,UNSIGNED
    示例:
    SELECT CAST(NOW() AS SIGNED INTEGER),CURDATE()+0;
    SELECT 'f'=BINARY 'F','f'=CAST('F' AS BINARY);

    九、系统信息函数
    DATABASE()   返回当前数据库名
    BENCHMARK(count,expr)  将表达式expr重复运行count次
    CONNECTION_ID()   返回当前客户的连接ID
    FOUND_ROWS()   返回最后一个SELECT查询进行检索的总行数
    USER()或SYSTEM_USER()  返回当前登陆用户名
    VERSION()   返回MySQL服务器的版本
    示例:
    SELECT DATABASE(),VERSION(),USER();
    SELECTBENCHMARK(9999999,LOG(RAND()*PI()));#该例中,MySQL计算LOG(RAND()*PI())表达式9999999次。
    展开全文
  • MySql常用函数

    千次阅读 2013-10-08 21:15:55
    MySql函数众多,这里只是列举了一部分常用函数。 一、数学函数 ABS(x) // 返回x的绝对值 BIN(x) //返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) //返回大于x的
  • MySQL常用函数MySQL 数值型函数MySQL 字符串函数MySQL 日期和时间函数MySQL 聚合函数MySQL 流程控制函数1、字符串函数2、数学函数3、时期时间函数4、转换函数 MySQL 函数会对传递进来的参数进行处理,并返回一个...
  • MySQL 常用函数 数学函数
  • MySQL 常用函数 加密函数
  • MySQL 常用函数
  • MySQL函数大全,MySQL常用函数汇总

    千次阅读 2019-05-13 23:08:43
    MySQL 函数会对传递进来的参数进行处理,并返回一个处理结果,也就是...可以对 MySQL 常用函数进行简单的分类,大概包括数值型函数、字符串型函数、日期时间函数、聚合函数等。 MySQL 数值型函数 函数名称 作 用...
  • mysql 常用函数

    千次阅读 2012-06-30 18:03:53
    注:mysql在处理字符串时,字符下标从1开始。 1、concat(string1, string2, ......); //连接字符串 mysql> select concat('leng', 'xue', 'gang') as name; +-------------+ | name | +-------------+ | ...
  • Mysql 常用函数

    千次阅读 2018-01-11 14:30:51
    Mysql 常用函数集1.分类导航一共分为5类函数 1. 字符型函数 2. 数值型函数 3. 日期型函数 4. 统计型函数 5. 其它型函数 2.字符型函数[约48个]如下: ascii(str)bin(n)bit_length(str)char(n,... [using charset...
  • MySQL 常用函数汇总

    千次阅读 2020-07-06 11:50:43
    上万字的 MySQL 常用函数汇总,收藏起来,用的时候不慌
  • MySQL常用函数大全(总结篇)

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 144,659
精华内容 57,863
关键字:

mysql常用函数

mysql 订阅