使用 mysql 中的派生列查找日期差异

To find the date difference using derived column in mysql

目标:我想创建一个报告,显示每个成员自加入日期以来的体验,并显示 3 个类别的案例条件。

我设法从会员加入之日起获得经验(以天为单位)。尝试派生新的列类别,比如低、中和高。我尝试了以下查询,但它不起作用,以下查询适用于 reg_date 列中的非日期值。

select m.member_id, m.first_name, m.last_name, m.store_id,
    (case when m.reg_date<='2018-04-01' then "low"
    case when m.reg_date>'2018-04-01' and m.reg_date<='2018-07-31' then "med"
    case when m.reg_date>'2018-07-31' then "high"
end, '%y%m%d') as category from member m;

多个错误:

  1. 语法应该是 (case when ... when ... when ...) 而不是每个 'when' 的 case。
  2. 您传递的第二个参数“%y%m%d”不是必需的。
  3. 不是错误,但为了清楚起见,考虑在最后一种情况下使用 "else"。

    (case 
      when m.reg_date<='2018-04-01' then "low"
      when m.reg_date>'2018-04-01' and m.reg_date<='2018-07-31' then "med"
      else "high"
    end)