MySQL--计算时间差

1. 时间差函数 TIMESTAMPDIFF

  • 语法:
    TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)

  • 说明: 返回结果 datetime_expr2 - datetime_expr1

  • 返回日期或日期时间表达式datetime_expr1datetime_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() 函数

用法:

  1. 无参数调用:UNIX_TIMESTAMP()
    返回值:自’1970-01-01 00:00:00’的到当前时间的秒数差
  2. 有参数调用: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
  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值