非常实用的sql函数

总结一些工作中用到的比较实用的sql函数,持续更新中。。。
1、date_format(参数1,参数2)
  • 格式化日期,

  • 参数1类型:date(日期)

  • 参数2类型:string(字符串),即日期格式

  • 示例如下:

    // %Y %m %d %H %i %s,分别对应年月日时分秒
    date_format(r.receive_date,'%Y-%m-%d %H:%i:%s') as receiveDate
    
2、concat(str1,str…)
  • 将多个字符串连接在一起
  • 参数类型:全部都是string(字符串)
  • 示例如下:
    ( SELECT concat( comp.ATTRIBUTE1, "_", comp.COMPANY_NAME ) 
    FROM tsp_bda_vb_companys comp WHERE comp.COMPANY_ID = ord.company_id ) 
    AS company_name,
    
3、group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])
  • 已查询的第一个字段分组,将字段连接在一起,默认以逗号分隔

  • 示例如下:

    GROUP_CONCAT(od.order_no,"-",od.order_line_no) order_no,
    
4、<![CDATA[ 特殊字符 ]]>
  • 处理特殊字符,解析器不对CDATA区中的内容进行解析,而是将这些数据原封不动地交给下游程序处理

  • 示例如下:

     <![CDATA[ date_format(r.receive_date ,'%Y-%m-%d') <= #{endDate} ]]>
    
  • 一些特殊字符也可用下面的替代符号所代替:

    特殊字符替代符号
    && amp;
    <& lt;
    >& gt;
    "& quot;
    & apos;
5、find_in_set(str,strlist)
  • 查询字符串(strlist)中包含(str)的结果,返回结果为null或记录
  • str 要查询的字段名
  • strlist 字符串 参数以”,”分隔 如 (1,2,6,8)
  • 示例如下:
      where( 
      	FIND_IN_SET(id,#{orderIds}) OR FIND_IN_SET(order_no,#{orderIds})
        )
    
6、TIMESTAMPDIFF(type,pretime,latertime)
  • TIMESTAMPDIFF函数,需要三个参数

  • type是比较的类型,可以比较FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR几种类型,

  • pretime是前一个时间

  • latertime是后一个时间,比较时用后一个时间减前一个时间

  • 系统当前时间:now()

  • 示例如下:

    SELECT * from table where TIMESTAMPDIFF(type,now(),latertime)>100
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值