您的位置:首页 > 数据库 > MySQL

mysql语句case when 的代码片段

2016-09-29 11:28 330 查看
SELECT
CASE WHEN a.order_status =1 THEN
(CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.create_date) = 0 THEN CONCAT('今天',' ',DATE_FORMAT(a.create_date,'%H:%i'))
WHEN TO_DAYS(NOW()) - TO_DAYS(a.create_date) = 1 THEN CONCAT('昨天',' ',DATE_FORMAT(a.create_date,'%H:%i'))
ELSE DATE_FORMAT(a.create_date,'%y/%m/%d %H:%i') END )
WHEN  a.order_status =2 THEN
(CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.receive_date) = 0 THEN CONCAT('今天',' ',DATE_FORMAT(a.receive_date,'%H:%i'))
WHEN TO_DAYS(NOW()) - TO_DAYS(a.receive_date) = 1 THEN CONCAT('昨天',' ',DATE_FORMAT(a.receive_date,'%H:%i'))
ELSE DATE_FORMAT(a.receive_date,'%y/%m/%d %H:%i') END )
WHEN  a.order_status =3 THEN
(CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.pay_date) = 0 THEN CONCAT('今天',' ',DATE_FORMAT(a.pay_date,'%H:%i'))
WHEN TO_DAYS(NOW()) - TO_DAYS(a.pay_date) = 1 THEN CONCAT('昨天',' ',DATE_FORMAT(a.pay_date,'%H:%i'))
ELSE DATE_FORMAT(a.pay_date,'%y/%m/%d %H:%i') END )
WHEN  a.order_status =4 THEN
(CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.get_goods_date) = 0 THEN CONCAT('今天',' ',DATE_FORMAT(a.get_goods_date,'%H:%i'))
WHEN TO_DAYS(NOW()) - TO_DAYS(a.get_goods_date) = 1 THEN CONCAT('昨天',' ',DATE_FORMAT(a.get_goods_date,'%H:%i'))
ELSE DATE_FORMAT(a.get_goods_date,'%y/%m/%d %H:%i') END )
WHEN  a.order_status =5 THEN
(CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.arrive_date) = 0 THEN CONCAT('今天',' ',DATE_FORMAT(a.arrive_date,'%H:%i'))
WHEN TO_DAYS(NOW()) - TO_DAYS(a.arrive_date) = 1 THEN CONCAT('昨天',' ',DATE_FORMAT(a.arrive_date,'%H:%i'))
ELSE DATE_FORMAT(a.arrive_date,'%y/%m/%d %H:%i') END )
WHEN  a.order_status =6 THEN
(CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.pay_date) = 0 THEN CONCAT('今天',' ',DATE_FORMAT(a.pay_date,'%H:%i'))
WHEN TO_DAYS(NOW()) - TO_DAYS(a.pay_date) = 1 THEN CONCAT('昨天',' ',DATE_FORMAT(a.pay_date,'%H:%i'))
ELSE DATE_FORMAT(a.pay_date,'%y/%m/%d %H:%i') END )
WHEN  a.order_status =7 THEN
(CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.confirm_goods_date) = 0 THEN CONCAT('今天',' ',DATE_FORMAT(a.confirm_goods_date,'%H:%i'))
WHEN TO_DAYS(NOW()) - TO_DAYS(a.confirm_goods_date) = 1 THEN CONCAT('昨天',' ',DATE_FORMAT(a.confirm_goods_date,'%H:%i'))
ELSE DATE_FORMAT(a.confirm_goods_date,'%y/%m/%d %H:%i') END )
WHEN  a.order_status =8 THEN
(CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.finish_date) = 0 THEN CONCAT('今天',' ',DATE_FORMAT(a.finish_date,'%H:%i'))
WHEN TO_DAYS(NOW()) - TO_DAYS(a.finish_date) = 1 THEN CONCAT('昨天',' ',DATE_FORMAT(a.finish_date,'%H:%i'))
ELSE DATE_FORMAT(a.finish_date,'%y/%m/%d %H:%i') END )
WHEN  a.order_status =9 THEN
(CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.receive_cancel_date) = 0 THEN CONCAT('今天',' ',DATE_FORMAT(a.receive_cancel_date,'%H:%i'))
WHEN TO_DAYS(NOW()) - TO_DAYS(a.receive_cancel_date) = 1 THEN CONCAT('昨天',' ',DATE_FORMAT(a.receive_cancel_date,'%H:%i'))
ELSE DATE_FORMAT(a.receive_cancel_date,'%y/%m/%d %H:%i') END )
WHEN  a.order_status =10 THEN
(CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.send_cancel_date) = 0 THEN CONCAT('今天',' ',DATE_FORMAT(a.send_cancel_date,'%H:%i'))
WHEN TO_DAYS(NOW()) - TO_DAYS(a.send_cancel_date) = 1 THEN CONCAT('昨天',' ',DATE_FORMAT(a.send_cancel_date,'%H:%i'))
ELSE DATE_FORMAT(a.send_cancel_date,'%y/%m/%d %H:%i') END )
WHEN  a.order_status =11 THEN
(CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.undo_date) = 0 THEN CONCAT('今天',' ',DATE_FORMAT(a.undo_date,'%H:%i'))
WHEN TO_DAYS(NOW()) - TO_DAYS(a.undo_date) = 1 THEN CONCAT('昨天',' ',DATE_FORMAT(a.undo_date,'%H:%i'))
ELSE DATE_FORMAT(a.undo_date,'%y/%m/%d %H:%i') END )
END AS showDate
FROM
order_info  a
<pre name="code" class="sql">SELECT a.order_status ,a.create_date,CASE WHEN a.order_status =1 THEN (CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.create_date) > 1 THEN 1 ELSE 0 END)WHEN a.order_status = 2 THEN (CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.receive_date) > 1 THEN 1 ELSE 0 END)WHEN a.order_status = 4 THEN (CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.get_goods_date) > 1 THEN 1 ELSE 0 END)WHEN a.order_status = 5 THEN (CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.arrive_date) > 1 THEN 1 ELSE 0 END)WHEN a.order_status = 6 THEN (CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.pay_date) > 1 THEN 1 ELSE 0 END)WHEN a.order_status = 8 THEN (CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.finish_date) > 1 THEN 1 ELSE 0 END)WHEN a.order_status = 9 THEN (CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.receive_cancel_date) > 1 THEN 1 ELSE 0 END)WHEN a.order_status = 10 THEN (CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.send_cancel_date) > 1 THEN 1 ELSE 0 END)WHEN a.order_status = 11 THEN (CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.undo_date) > 1 THEN 1 ELSE 0 END)WHEN a.order_status = 3 THEN (CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.pay_date) > 1 THEN 1 ELSE 0 END)WHEN a.order_status = 7 THEN (CASE WHEN TO_DAYS(NOW()) - TO_DAYS(a.confirm_goods_date) > 1 THEN 1 ELSE 0 END)END AS dateTypeFROMorder_info a

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql