mysql datetime 字段进行比较

2019-10-17 18:20:34 +08:00
 rqxiao

如果大于当前时间 返回待生效

如果小于当前时间 且是离当前时间最近的 返回 使用中

剩下的 返回已失效

求解

2154 次点击
所在节点    程序员
3 条回复
nwljy
2019-10-18 03:03:27 +08:00
case when

当前时间 :SYSDATE;
格式 (to_date(BUSI_DATE,'yyyyMMdd') + 8) >= SYSDATE;
rqxiao
2019-10-18 09:30:35 +08:00
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 里面吗
setsunakute
2019-10-18 10:49:05 +08:00
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 的时候会多一个字段, 处理的时候忽略就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/610393

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX