本帖最后由 ACMAIN_CHM 于 2012-11-24 18:28:54 编辑

解决方案 »

  1.   

    select *
    from 表名 
    WHERE 条件 
    ORDER BY CASE WHEN `开始时间` > '当前时间' THEN 1 ELSE 2 END, `开始时间` * CASE WHEN `开始时间` > '当前时间' THEN 1 ELSE -1 END
      

  2.   

    要求是开始时间大于当前时间的,就是还没开始的,以开始时间这个字段正序排,ASC. 而已经开始了或已经过去了的,以开始时间为倒序排DESC. select  * from tb where 字段活动开始时间>now() order by 字段活动开始时间 asc
    union all
    select  * from tb where 字段活动开始时间<=now() order by 字段活动开始时间 desc
      

  3.   

    select * from tb 
    where 字段活动开始时间>now() order by 字段活动开始时间 asc
    union all
    select * from tb
    where 字段活动开始时间>now() order by 字段活动开始时间 desc;