在使用MySQL中经常需要对日期等时间进行比较,如寻找比前一天温度上升那一天的信息,下面是关于datediff()和timestampdiff()的使用。
datediff(日期1, 日期2)函数:
得到的结果是日期1与日期2相差的天数。
如果日期1比日期2大,结果为正;如果日期1比日期2小,结果为负。
?date1表(关于日期和温度的表)
SELECT *,datediff(d1.date,d2.date) datediff FROM date1 d1,date1 d2
where datediff(d1.date,d2.date)=1
如图所示结果,将该表通过自身连接将日期相差一天的连接出来,即datediff计算出的日期相差天数为1。
如果需要寻找比前一天温度高的日期,只需要在最后加入一个条件即可。
timestampdiff(时间类型, 日期1, 日期2)函数:
这个函数和上面diffdate的正、负号规则刚好相反。
日期1大于日期2,结果为负,日期1小于日期2,结果为正。
在“时间类型”的参数位置,通过添加“day”, “hour”, “second”等关键词,来规定计算天数差、小时数差、还是分钟数差。
date2表
?下面是利用该表进行举例说明(比较hour事件类型进行举例)
SELECT *,timestampdiff(hour,d1.time,d2.time) timestampdiff FROM date2 d1,date2 d2
where timestampdiff(hour,d1.time,d2.time)=-1
如图所示结果,将该表通过自身连接将日期相差一天的连接出来,即timestampdiff计算出的小时相差为-1。
同上,如果需要其他条件自行加入即可。
?
|