对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会报错,这⾥需要对这些符号进⾏替换。原符<号
<=>>=&'\"
替换
<<=>>=&'"符
符号
因篇幅问题不能全部显示,请点此查看更多更全内容