使用 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;
多个错误:
- 语法应该是 (case when ... when ... when ...) 而不是每个 'when' 的 case。
- 您传递的第二个参数“%y%m%d”不是必需的。
不是错误,但为了清楚起见,考虑在最后一种情况下使用 "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)
目标:我想创建一个报告,显示每个成员自加入日期以来的体验,并显示 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;
多个错误:
- 语法应该是 (case when ... when ... when ...) 而不是每个 'when' 的 case。
- 您传递的第二个参数“%y%m%d”不是必需的。
不是错误,但为了清楚起见,考虑在最后一种情况下使用 "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)