07 MySQL常用内置函数
常用函数
    1.字符串函数
        CONCAT(str1,str2,..,strN)
            将str1,str2..strN 拼接成一个字符串,当这里有任何一个为NULL,则拼接结果为NULL
        INSERT(str, idx,len,tarStr)
            将字符串str从 idx 位置开始,len个字符长度的子串替换为字符串tarStr.
        LOWER(str) / UPPER(str)
        LEFT( str , len ) / RIGHT( str , len )
            返回 str 最左/右边的 len 个字符
        LPAD( str , len , fill_str ) / RPAD( str , len , fill_str )
            使用字符串 fill_str 对str最左/右边进行填充,直到长度为 len 个字符长度.
        LTRIM(str) / RTRIM(str) / TRIM(str)
            去掉字符串str 最左侧的空格 / 最右侧的空格 / 两侧的空格
        REPEAT(str, count)
            返回 str 重复 count 次的结果
        REPLACE( str, src_str ,tar_str )
            用字符串 tar_str 替换 所有 出现在 str 中的字符串 src_str ;
        STRCMP(s1,s2)
            比较字符串s1和s2的ASCII的大小.
            s1<s2 则返回-1 ; s1>s2 返回1 ; s1=s2 返回0.
        SUBSTRING( str , idx , len )
            返回字符串 str 从第 idx 索引处开始 长度为 len 的字符串.
    2.数值函数
        ABS(x)
            返回x的绝对值
        CEIL(x)
            返回大于x的最大整数值
        FLOOR(x)
            返回小于x的最大整数值
        MOD(x,y)
            相当于 x%y
        RAND()
            返回0~1之间的随机数
        ROUND(x,y)
            返回 x 四舍五入后有y位小数的值
        TRUNCATE(x,y)
            返回 x 截断 为y位小数的结果;
        ROUND() 和 TRUNCATE() 区别是 前者会进行四舍五入,后者只是截断,而不会四舍五入.
    3.日期/时间 函数
        CURDATE()
            返回当前日期,只包含年月日yyyy-MM-dd
        CURTIME()
            返回当前时间,只包含时分秒hh:mm:ss
        NOW()
            返回当前日期+时间.yyyy-MM-dd hh:mm:ss
        UNIX_TIMESTAMP(date)
            返回日期date的UNIX时间戳
        FROM_UNIXTIME(unixtime)
            返回UNIXTIME时间戳的日期值.与UNIX_TIMESTAMP(date)函数互为逆操作.
        WEEK(date)
            返回一年中的第几周
        YEAR(date)
            返回所给日期是哪年
        HOUR(time)
            返回所给时间的小时
        MINUTE(time)
            返回所给时间的分钟
        MONTHNAME(date)
            返回所给date相对应的月份的英文名称,如July.
        DATE_FORMAT(date,fmt)
            返回按字符串fmt格式化日期date值.
            fmt可用到的格式符号:
                %S,%s    两位数字形式的秒
                %i    两位数字形式的分
                %H    两位数字形式的小时,24小时制
                %h,%I    两位数字形式的小事,12小时制 todo
                %k    数字形式的小时,24小时制.不满10的,不补0
%l 数字形式的小时,12小时制.不满10的,不补0 todo%T 24小时制的时间形式 hh:mm:ss%r 12小时制的时间形式 hh:mm:ssAM 或 hh:mm:ssPM%p AM 或PM%W 一周中每一天的英文名称(如Sunday,Monday)%a 一周中没一台呢的英文名称的缩写(如Sun,Mon)%d 两位数字表示月中的天数%e 数字形式表示月中的天数%D 英文后缀表示月中的天数(1st,2nd,3rd)%w 以数字形式表示周中的天数(0=Sunday,1=Monday...)%j 以3位数字表示年中的天数%U 周(0,1,52) , Sunday为周的第一天%u 周(0,1,52) , Monday为周的第一天%M 月的英文名(January,February..)%b 月的英文名缩写(Jan,Feb,Dec...)%m 两位数字表示的月份%c 数字表示的月份%Y 4位数字表示的年份%y 两位数字表示的年份%% 直接值"%"
        DATE_ADD(date,INTERVAL expr type)
            其中,INTERVAL是关键字,expr是表达式,type是间隔类型.
MySQL的13种间隔(INTERVAL)类型HOUR 小时 hhMINUTE 分 mmSECOND 秒 ssYEAR 年 YYMONTH 月 MMDAY 日 DDYEAR_MONTH 年月 YY-MMDAY_HOUR 日和小时 DD hhDAY_MINUTE 日和分钟 DD hh:mmDAY_SECOND 日和秒 DD hh:mm:ssHOUR_MINUTE 小时和分 hh:mmHOUR_SECOND 小时和秒 hh:ssMINUTE_SECOND 分钟和秒 mm:ssdemo : SELECT DATE_ADD( now() , INTERVAL -31 DAY) AS before31days ;
        DATEDIFF(date1,date2)
            计算两个日期中间相差多少天 todo 验证是否和两个参数的顺序相关
    4.流程函数
        DATABASE()
            返回当前数据库名
        VERSION()
            返回当前数据库版本
        USER()
            返回当前登录用户名
        INET_ATON(IP)
            返回IP地址的数字表示,多用于IP大小的比较
        INET_NTOA(num)
            返回数字代表的IP地址.不要用这种方式比较大小
        PASSWORD(str)
            返回字符串str的加密版本.返回的字符串长度为41.
            只用于对系统用户的密码进行加密,不要用于数据的加密
        MD5(str)
            返回字符串str的MD5值.对数据进行加密.
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号