MySQL DATE_SUB和SUBDATE函数:日期减法运算

MySQL DATE_SUB(date,INTERVAL expr type) 和 SUBDATE(date,INTERVAL expr type) 两个函数作用相同,都是执行日期的减法运算。

DATE_SUB() 和 SUBDATE() 函数接受两个参数:

    • date 是 DATE 或 DATETIME 的起始值。
    • expr 是一个字符串,用于确定从起始日期减去的间隔值。type 是 expr 可解析的间隔单位,例如 DAY,HOUR 等

select current_date()-1 --20210629 慎用!
 
select  DATE_FORMAT(current_date()-1, '%Y-%m-%d') --2021-07-06
 
select  DATE_FORMAT(current_date()-31, '%Y-%m-%d') --空
 
select  DATE_FORMAT(date_sub(current_date(), interval 1 day), '%Y-%m-%d') -- 2021-07-06
 
select  DATE_FORMAT(date_sub(current_date(), interval 31 day), '%Y-%m-%d')  -- 2021-06-06
 
select  DATE_SUB(current_date, INTERVAL 35 DAY)  -- 2021-05-29
————————————————

SELECT DISTINCT p.id
FROM t_post_topic pt,
t_post p
WHERE
pt.post_id = p.id
AND p.review_status = 1
AND p.create_time >= subdate(current_date, INTERVAL 10 day)
AND pt.topic_id = #{cityId}
<if test="num == 2">
ORDER BY p.hot_score DESC,
p.id DESC
</if>
<if test="num == 3">
ORDER BY p.create_time DESC,
p.id DESC
</if>