zoukankan      html  css  js  c++  java
  • mybatis中使用DATE_SUB()函数实现网站访问量日,月,年统计

    一.定义和用法

        DATE_SUB() 函数从日期减去指定的时间间隔。

    二.语法

         DATE_SUB(date,INTERVAL expr type

        date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。

        type 参数可以是下列值:

    Type 值
    MICROSECOND
    SECOND
    MINUTE
    HOUR
    DAY
    WEEK
    MONTH
    QUARTER
    YEAR
    SECOND_MICROSECOND
    MINUTE_MICROSECOND
    MINUTE_SECOND
    HOUR_MICROSECOND
    HOUR_SECOND
    HOUR_MINUTE
    DAY_MICROSECOND
    DAY_SECOND
    DAY_MINUTE
    DAY_HOUR
    YEAR_MONTH

    三.实例

        假设我们有如下的表:

       现在,如果我们想获得今天的数据,可以使用以下的sql语句

       select  *  from 表名 where DATE_SUB(CURDATE(),INTERVAL 1 WEEK) <=loginTime

       CURDATE()与NOW()一样,表示今天的时间,但是不同的是,NOW()的格式为 “ 0000-00-00-00-00-00”,而CURDATE()的格式为“ 0000-00-00“

       执行此sql以后得到的数据为:

        

    如果需要查询最近一年或者一个月的数据,只需要把sql中的 WEEK 换成 YEAR 或者 MONTH即可

    但是!!!特别需要注意的是,因为mybatis中sql写在xml文件中,如果写上面那个sql,会报错The content of elements must consist of well-formed character data or markup. 

    这是因为XML 元素必须遵循以下命名规则:

    1.名称可以含字母、数字以及其他的字符 

    2.名称不能以数字或者标点符号开始

     3.名称不能以字符 “xml”(或者 XML、Xml)开始

    4.名称不能包含空格

    而sql中的 "<" 属于特殊字符,妈耶,那是不是mybatis中就不能用这种sql呢,不不不,还是有办法的。。。

    我们可以把mybatis配置文件写SQL语句的某些字符转义:

    &lt; <
    &gt; >
    &lt;&gt; <>
    &amp; &
    &apos; '
    &quot; "

  • 相关阅读:
    转:Caused by: java.lang.NoSuchMethodError: org.apache.log4j.Category.log
    maven安装
    eclipse安装插件
    java.lang.ClassNotFoundException: com.*.listener.ConfigInfoReader
    oracle
    myeclipse中文乱码,JSP页面乱码
    ansible 列表变量、字典变量
    python模块
    python函数
    python数据类型2
  • 原文地址:https://www.cnblogs.com/qingmuchuanqi48/p/14225975.html
Copyright © 2011-2022 走看看