获得当前时间和另一时间的时间差
SELECTTIMESTAMPDIFF(SECOND,(selectlast_locationTimefrommunicipal_employeewhereemployee_id=9),now())asdiffTime;
mysql的
TIMESTAMPDIFF(SECOND,starttime,endtime)
函数获得时间差,得到的可以是DAY/天,HOUR/小时,MINUTE/分钟,SECOND/秒。
其中starttime为时间小的那个时间,endtime为时间大的时间。
now()函数为获取当前日期时间
mysql最全的计算时间差
计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数TimeStampDiff()实现。
函数TimeStampDiff()是MySQL本身提供的可以计算两个时间间隔的函数,语法为:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
返回日期或日期时间表达式datetime_expr1和datetime_expr2the之间的整数差。
其中unit单位有如下几种,分别是:FRAC_SECOND(microseconds),SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,QUARTER,YEAR。
该参数具体释义如下:
FRAC_SECOND表示间隔是毫秒
SECOND秒
MINUTE分钟
HOUR小时
DAY天
WEEK星期
MONTH月
QUARTER季度
YEAR年
例如:
计算两日期之间相差多少周
selecttimestampdiff(week,'2011-09-30','2015-05-04');
计算两日期之间相差多少天
selecttimestampdiff(day,'2011-09-30','2015-05-04');
另外计算两日期或时间之间相差多少天还可以使用to_days函数,但是该函数不用于阳历出现(1582)前的值,原因是当日历改变时,遗失的日期不会被考虑在内。
因此对于1582年之前的日期(或许在其它地区为下一年),该函数的结果实不可靠的。
具体用法如:
to_days(end_time)-to_days(start_time);
计算两日期/时间之间相差的秒数
selecttimestampdiff(SECOND,'2011-09-30','2015-05-04');
另外还可以使用MySql内置函数UNIX_TIMESTAMP实现,如下:
SELECTUNIX_TIMESTAMP(end_time)-UNIX_TIMESTAMP(start_time);
计算两日期/时间之间相差的时分数
selecttimestampdiff(MINUTE,'2011-09-30','2015-05-04');
另外还可以如下实现:
SELECTSEC_TO_TIME(UNIX_TIMESTAMP(end_time)-UNIX_TIMESTAMP(start_time));
|