如果大于当前时间 返回待生效
如果小于当前时间 且是离当前时间最近的 返回 使用中
剩下的 返回已失效
求解
1
nwljy 2019-10-18 03:03:27 +08:00
case when
当前时间 :SYSDATE; 格式 (to_date(BUSI_DATE,'yyyyMMdd') + 8) >= SYSDATE; |
2
rqxiao OP SELECT
effective_time , CASE WHEN effective_time <date_format(now() ,'%Y-%m-%d %H:%i:%S') THEN '11' WHEN effective_time >date_format(now() ,'%Y-%m-%d %H:%i:%S') THEN '22' WHEN effective_time =date_format(now() ,'%Y-%m-%d %H:%i:%S') THEN '33' ELSE '44444444' END 'xxxx' FROM student; select max(effective_time) from student where effective_time< now(); 请问有什么办法把下面 那句话放到 第三个 when 里面吗 |
3
setsunakute 2019-10-18 10:49:05 +08:00 1
SELECT
effective_time , @max_time := (select max(effective_time) from student where create_time < now()) as 'max_time', CASE WHEN effective_time < @max_time THEN '11' WHEN effective_time > @max_time THEN '22' WHEN effective_time = @max_time THEN '33' ELSE '44444444' END 'xxxx' FROM student; 这样, select 的时候会多一个字段, 处理的时候忽略就可以了 |