1. 时间差函数 TIMESTAMPDIFF
-
语法:
TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) -
说明: 返回结果
datetime_expr2 - datetime_expr1
-
返回日期或日期时间表达式
datetime_expr1
和datetime_expr2
之间的整数差。其结果的单位由interval 参数给出。interval 的法定值同TIMESTAMPADD()
函数说明中所列出的相同。
interval可是:| SECOND | 秒 | SECONDS |
| MINUTE | 分钟 | MINUTES |
HOUR 时间 HOURS
DAY 天 DAYS
MONTH 月 MONTHS
YEAR 年 YEARS
#计算月份差
SELECT TIMESTAMPDIFF(MONTH,'2016-01-03','2016-04-08');
#计算分钟差
delete from exam_record
where TIMESTAMPDIFF(minute,start_time,submit_time) < 5 and score < 60;
2. 时间差函数 DATEDIFF
MySQL中可以使用DATEDIFF()
函数计算两个日期之间的天数,时间数。
用法:
DATEDIFF(date1,date2)
SELECT DATEDIFF('2008-11-30','2008-11-29') AS DiffDate
#返回1
#计算分钟 需要通过时间的格式进行对比
delete from exam_record
where timediff(submit_time,start_time) < '00:05:00';
3. DATE_SUB() 函数
DATE_SUB() 函数从日期减去指定的时间间隔。
语法:
DATE_SUB(date,INTERVAL expr type)
date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
type 参数可以是下列值:
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 |
用法:
# 计算提交时间 - 开始时间小于5分钟
delete from exam_record
where DATE_SUB(submit_time,INTERVAL 5 MINUTE) < start_time;
4. UNIX_TIMESTAMP() 函数
用法:
- 无参数调用:UNIX_TIMESTAMP()
返回值:自’1970-01-01 00:00:00’的到当前时间的秒数差 - 有参数调用:UNIX_TIMESTAMP(date)
其中date可以是一个DATE字符串,一个DATETIME字符串,一个TIMESTAMP或者一个当地时间的YYMMDD或YYYMMDD格式的数字
返回值:自’1970-01-01 00:00:00’与指定时间的秒数差
# 计算提交时间 - 开始时间小于5分钟 = 300秒
delete from exam_record
where UNIX_TIMESTAMP(submit_time)-UNIX_TIMESTAMP(start_time) < 300