结束时间-开始时间=经过的时间 excel_列表怎么按时间排序

结束时间-开始时间=经过的时间 excel_列表怎么按时间排序今天接到一个需求,任务按照 进行中>即将开始>已结束 >活动任务>全局任务 > sort的排序 表如下 CREATE TABLE `task` ( `taskid` int(10) unsigned…

今天接到一个需求,任务按照 进行中>即将开始>已结束 >活动任务>全局任务 > sort的排序 表如下

CREATE TABLE `task` (
  `taskid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT "任务ID",
  `title` varchar(20) NOT NULL DEFAULT "" COMMENT "标题",
  `type_for` tinyint(1) NOT NULL DEFAULT "1" COMMENT "1全局2针对活动",
  `atid` int(11) unsigned NOT NULL DEFAULT "0" COMMENT "活动ID",
  `beg_time` int(11) NOT NULL DEFAULT "0" COMMENT "开始时间",
  `end_time` int(11) NOT NULL DEFAULT "0" COMMENT "结束时间",
  `target` text COMMENT "任务目标",
  `state` tinyint(1) NOT NULL DEFAULT "1" COMMENT "状态1开启,0关闭",
  `created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
  `updated_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "更新时间",
  `sort` int(10) unsigned NOT NULL DEFAULT "0" COMMENT "倒序",
  PRIMARY KEY (`taskid`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT="任务系统"

代码100分

order by需要做用到case when才能正常达到预期

代码100分select
	*
from
	`task`
order by
	(case
		when beg_time <= 1587382508
		and 1587382508 <= end_time then 1
		else 0 end) desc,
	(case
		when beg_time > 1587382508 then 1
		else 0 end) desc,
	(case
		when end_time < 1587382508 then 1
		else 0 end) desc,
	type_for asc,
	sort desc

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8922.html

(0)
上一篇 2023-02-19 12:30
下一篇 2023-02-19

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注