首页 > 解决方案 > MYSQL 使用案例从 curdate() 中减去天数

问题描述

我想使用案例陈述根据挂牌费从 curdate() 中减去 30 天或 60 天 如果挂牌费 = 5 或 6,则减去 30 天 如果挂牌费 = 7 或 8,则减去 60 天

我试过这个,但它似乎不起作用

where `status`='C' and `close_date`>curdate() AND  `date_posted` < curdate() - 
CASE 
    WHEN listing_fee = 5 THEN INTERVAL 30 DAY
    WHEN listing_fee = 6 THEN INTERVAL 30 DAY
    WHEN listing_fee = 7 THEN INTERVAL 60 DAY
    WHEN listing_fee = 8 THEN INTERVAL 60 DAY

END

标签: mysql

解决方案


(CASE 
    WHEN listing_fee = 5 THEN  `date_posted` < DATE_SUB(curdate(), INTERVAL 30 DAY)
    WHEN listing_fee = 6 THEN  `date_posted` < DATE_SUB(curdate(), INTERVAL 30 DAY)
    WHEN listing_fee = 7 THEN  `date_posted` < DATE_SUB(curdate(), INTERVAL 60 DAY)
    WHEN listing_fee = 8 THEN  `date_posted` < DATE_SUB(curdate(), INTERVAL 60 DAY)
    ELSE 0/1 END # <- don't know what result
)

推荐阅读