zoukankan      html  css  js  c++  java
  • 盘点MySQL中比较实用的函数

    之前小编在工作中遇到一些处理数据的问题,例如完成日期格式化,获取几天后的时间,生成指定格式的编码等问题,这时候小编经常会写一大堆逻辑代码来进行处理,还自己感觉自己很流弊的样子,后来却发现同事遇到相同的问题并没有写一大堆逻辑代码,好奇心下促使我偷偷的看了下同事的代码,才明白他们很喜欢使用sql中的函数直接处理了,大大减少了代码量,于是小编决定加强这方面的知识,多积累多看,把比较实用的一些sql函数列举出来,望指点一下。

    NO1: datediff函数

         datediff函数返回两个日期之间的天数

         语法:DATEDIFF(date1,date2)

    SELECT DATEDIFF('2018-07-01','2018-07-04');
         运行结果:-3

         所以,datediff函数对时间差值的计算方式为date1-date2的差值。


    NO2: timestampdiff函数

        timestampdiff函数日期或日期时间表达式之间的整数差。

        语法:TIMESTAMPDIFF(interval,datetime1,datetime2),比较的单位interval可以为以下数值

    FRAC_SECOND。表示间隔是毫秒
    SECOND。秒
    MINUTE。分钟
    HOUR。小时
    DAY。天
    WEEK。星期
    MONTH。月
    QUARTER。季度
    YEAR。年
    select TIMESTAMPDIFF(DAY,'2018-07-01 09:00:00','2018-07-04 12:00:00');
        运行结果:3
        所以,timestampdiff函数对日期差值的计算方式为datetime2-datetime1的差值。

        请注意:DATEDIFF,TIMESTAMPDIFF对日期差值的计算方式刚好是相反的


    NO3:concat()函数

    1、功能:将多个字符串连接成一个字符串。

    2、语法:concat(str1, str2,...)  

    返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。

    3、语法:concat(str1, seperator,str2,seperator,...)

    返回结果为连接参数产生的字符串并且有分隔符,如果有任何一个参数为null,则返回值为null。


    NO4: concat_ws()函数

    1、功能:和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符(concat_ws就是concat with separator)

    2、语法:concat_ws(separator, str1, str2, ...)

    说明:第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。


     NO5: group_concat()函数

    1、功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

    2、语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc  ] [separator '分隔符'] )

    说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。


    NO6:CHAR_LENGTH(s)函数

    1.功能:返回字符串 s 的字符数

    2.语法:

    返回字符串 RUNOOB 的字符数

    SELECT CHAR_LENGTH("RUNOOB") AS LengthOfString;


    NO7:FIELD(s,s1,s2...)函数

    1.功能:返回第一个字符串 s 在字符串列表(s1,s2...)中的位置

    2.语法:返回字符串 c 在列表值中的位置:

    SELECT FIELD("c", "a", "b", "c", "d", "e");

    NO8:FIND_IN_SET(s1,s2)函数

    1.功能:返回在字符串s2中与s1匹配的字符串的位置

    2.语法:

    返回字符串 c 在指定字符串中的位置:

    SELECT FIND_IN_SET("c", "a,b,c,d,e");

    NO9:FORMAT(x,n)函数

    1.功能:函数可以将数字 x 进行格式化 "#,###.##", 将 x 保留到小数点后 n 位,最后一位四舍五入。

    2.语法:

    格式化数字 "#,###.##" 形式:

    SELECT FORMAT(250500.5634, 2);     -- 输出 250,500.56

    NO10:LEFT(s,n)函数
    1.功能:返回字符串 s 的前 n 个字符

    2.语法:

    返回字符串 runoob 中的前两个字符:

    SELECT LEFT('runoob',2) -- ru

    NO11:MID(s,n,len)函数
    1.功能:从字符串 s 的 n 位置截取长度为 len 的子字符串,同 SUBSTRING(s,n,len)

    2.语法:

    从字符串 RUNOOB 中的第 2 个位置截取 3个 字符:

    SELECT MID("RUNOOB", 2, 3) AS ExtractString; -- UNO
    
    
    
  • 相关阅读:
    loadrunner -27778 https连接问题
    https调试
    Session Alerts
    Pause Web Sessions
    Customize Web Sessions List
    单例模式:Java单例模式的几种写法及它们的优缺点
    Activity: launchMode 和 Intent.FLAG_ACTIVITY_CLEAR_TOP
    TextView: android:ellipsize="marquee" 跑马灯效果无效的问题
    Socket通信(1):搭建开发环境
    linux: QT安装时出现段错误segmentation fault
  • 原文地址:https://www.cnblogs.com/zaevn00001/p/12447440.html
Copyright © 2011-2022 走看看