sql两种方式计算时间差值并比较

 

-- DATE_SUB 加上 INTERVAL 代表把时间往前推N个小时,HOUR 是单位
-- 大于号后面的if是做了个非空判断
SELECT DATE_SUB(date_format(user.step_time, '%Y-%m-%d'), INTERVAL (user.cycle * 24) HOUR) > if(user.last_step_time is null, date_format(user.step_time, '%Y-%m-%d'), date_format(user.last_step_time, '%Y-%m-%d'))
FROM `t_user_info` user where user.id = 112233;

-- DATEDIFF 代表把两个时间相减
select DATEDIFF(DATE_FORMAT(user.step_time, '%Y-%m-%d %h:%i:%s'), user.last_step_time) > user.cycle
FROM `t_user_info` user where user.id = 112233;

 

posted @ 2022-07-20 17:11  夏威夷8080  阅读(1769)  评论(0编辑  收藏  举报