xml:标签CDATA用法 及 left(a,b)函数的使用

  1. 遇到的问题:
  2. 解决方案:
  • 一、<![CDATA[]]>标签作用;
    1. 注意:
  • 二、sql的left(a,b)函数;
    1. 学习使用:
    2. MySQL日期加减函数详解:
  • 遇到的问题:

    上海无名款通知推送的消息里多推送了部分数据,数据库执行sql的时候,发现使用了<![CDATA[]]>标签及left(a,b)函数;

    1
    AND <![CDATA[ left(a.cdate,10)<left(date_add(now(), interval 1 day),10) ]]>

    解决方案:

    上海无名款推送消息的机器人的token配置在local环境中,本地项目启动定时也会定时推送本地数据库中的数据;

    一、<![CDATA[]]>标签作用;

    ]]>``` 在mybatis、ibatis等书写SQL的xml中比较常见,是一种XML语法,他的作用是可以忽略xml的转义(在该标签中的语句和字符原本是什么样的,在拼接成SQL后还是什么样的。)
    1
    2
    3
    4
    5
    6
    7
    #### 学习/使用:
    ```js
    select * from user
    where isDeleted = 0
    <if test=" age != 0 ">
    <![CDATA[ and age < 18 ]]>
    </if>

    如上SQL :遇到 “<” 特殊字符需要转义为 “&lt”;因为有的特殊字符xml不识别,会直接报异常,因此会使用到 <![CDATA[ ]]>标签,由它包裹的SQL和特殊字符将忽略转义,最后拼接为SQL语句:

    1
    select * from user where isDeleted = 0 and age < 18

    注意:

    1.使用动态SQL时要像if、foreach、where等标签一但被 ```<![CDATA[]]>```标签包裹,将忽略xml的解析并出错.
    2.```<![CDATA[]]>```标签中不可嵌套```<![CDATA[]]>标签```.
    3.```<![CDATA[]]>```尽量缩小范围,以免出错.
    

    二、sql的left(a,b)函数;

    left(a,b)与right(a,b)介绍:sql的left()函数表示的是从字符表达式最左边一个字符开始返回指定数目的字符.若 b 的值大于 a 的长度,则返回字符表达式的全部字符a.如果 b 为负值或 0,则返回空字符串.

    学习使用:

    1
    2
    3
    4
    select left(CONTRACT_NAME,2) from gb_t_contract  where 1=1;
    #从字符表达式最左边一个字符开始返回指定数目的字符.
    #若 b 的值大于 a 的长度,则返回字符表达式的全部字符a.如果 b 为负值或 0,则返回空字符串.
    select left('2323232',9) ;


    MySQL日期加减函数详解:

    1. addtime();
      1
      select addtime(now(),1); -- 加1秒  
      2.adddate();
      有两种用法,第二个参数直接填数字的话是为日期加上指定天数,填interval的话是为日期加上指定的interval时间.
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      select adddate(now(),1); -- 加1
      select adddate(now(), interval 1 day); -- 加1
      select adddate(now(), interval 1 hour); --加1小时
      select adddate(now(), interval 1 minute); -- 加1分钟
      select adddate(now(), interval 1 second); -- 加1
      select adddate(now(), interval 1 microsecond); -- 加1毫秒
      select adddate(now(), interval 1 week); -- 加1
      select adddate(now(), interval 1 month); -- 加1
      select adddate(now(), interval 1 quarter); -- 加1
      select adddate(now(), interval 1 year); -- 加1
    2. date_add();
      为日期增加一个时间间隔,这个只能使用interval时间作为参数,用法和adddate()一致.
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      select date_add(now(), interval 1 day); -- 加1
      select date_add(now(), interval 1 hour); -- 加1小时
      select date_add(now(), interval 1 minute); -- 加1分钟
      select date_add(now(), interval 1 second); -- 加1
      select date_add(now(), interval 1 microsecond); -- 加1毫秒
      select date_add(now(), interval 1 week); -- 加1
      select date_add(now(), interval 1 month); -- 加1
      select date_add(now(), interval 1 quarter); -- 加1
      select date_add(now(), interval 1 year); -- 加1
      ```  
      4. subtime();
      为日期减去指定秒数.
      ```js
      select subtime(now(), 1); -- 减1
    3. subdate();
      与adddate()函数用法一致,有两种用法,第二个参数直接填数字的话是为日期减去指定天数,填interval的话是为日期减去指定的interval时间.
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      select subdate(now(),1); -- 减1
      select subdate(now(), interval 1 day); -- 减1
      select subdate(now(), interval 1 hour); --减1小时
      select subdate(now(), interval 1 minute); -- 减1分钟
      select subdate(now(), interval 1 second); -- 减1
      select subdate(now(), interval 1 microsecond); -- 减1毫秒
      select subdate(now(), interval 1 week); -- 减1
      select subdate(now(), interval 1 month); -- 减1
      select subdate(now(), interval 1 quarter); -- 减1
      select subdate(now(), interval 1 year); -- 减1
    4. date_sub(); 
      与date_add()函数用法一致,为日期减去一个时间间隔,这个只能使用interval时间作为参数.
      1
      2
      3
      4
      5
      6
      7
      8
      9
      select date_sub(now(), interval 1 day); -- 减1
      select date_sub(now(), interval 1 hour); --减1小时
      select date_sub(now(), interval 1 minute); -- 减1分钟
      select date_sub(now(), interval 1 second); -- 减1
      select date_sub(now(), interval 1 microsecond); -- 减1毫秒
      select date_sub(now(), interval 1 week); -- 减1
      select date_sub(now(), interval 1 month); -- 减1
      select date_sub(now(), interval 1 quarter); -- 减1
      select date_sub(now(), interval 1 year); -- 减1

    💰

    ×

    Help us with donation