MYSQL中 datediff、timestampdiff函数的使用(计算时间间隔)

对mysql中日期范围搜索的大致有三种方式:

1、between and 语句;

2、datediff 函数;

3、timestampdiff 函数;

下面就具体说明下这三种方式:

第一种: between and语句

select * from dat_document where commit_date between '2018-07-01' and '2018-07-04'

   结果是1号到3号的数据,这是因为时间范围显示的实际上只是‘2018-07-01 00:00:00’到'2018-07-04 00:00:00'之间的数据,而'2018-07-04'的数据就无法显示出来,between and对边界还需要进行额外的处理.

第二种: datediff函数

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

     语法:DATEDIFF(date1,date2)

SELECT DATEDIFF('2018-07-01','2018-07-04');

     运行结果:-3

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

第三种: 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对日期差值的计算方式刚好是相反的。


另外,如果是在xml文件中对计算的值进行比较的话,有可能会用到<、>、<=、>=等,xml会报错,这里需要对这些符号进行替换。

原符号 < <= > >= & ' "
替换符号 &lt; &lt;= &gt; &gt;= &amp; &apos; &quot;



posted on 2021-06-07 14:56  UnmatchedSelf  阅读(1318)  评论(0编辑  收藏  举报

导航