mybatis 關於時間比較的sql

mysql、oracle關於時間格式化的函數:

Mysql中使用DATE_FORMAT函數: DATE_FORMAT(create_date,'%Y-%m-%d  %H:%i:%S')

Oracle中使用to_date函數和to_char函數: TO_DATE('2018-11-24 14:01:39','yyyy-MM-dd hh24:mi:ss')

                                                                 或TO_CHAR(DATE,'yyyy-MM-dd hh24:mi:ss')

以下爲mysql例子:

時間7天之內:

  DATE_FORMAT(CURDATE(), '%Y-%m-%d')-interval 7 day

  DATE_SUB(CURDATE(), INTERVAL 7 DAY)

<select id="pageAppNodeManage" resultMap="BaseResultMap" parameterType="Map" >
    select  *   from progress_node_manage
    where  circuit_id =  #{manageParam.circuitId,jdbcType=VARCHAR}
    and  progress_grade = #{manageParam.progressGrade,jdbcType=CHAR}
    and  del_flag = '0'
    <if test="manageParam.projectId != null and manageParam.projectId != ''">
      and  project_id =  #{manageParam.projectId,jdbcType=VARCHAR}
    </if>
    <if test="manageParam.workAreaId != null and manageParam.workAreaId != ''">
      and  work_area_id =  #{manageParam.workAreaId,jdbcType=VARCHAR}
    </if>
    <if test="manageParam.reportPersonId != null and manageParam.reportPersonId != ''">
      and  report_person_id =  #{manageParam.reportPersonId,jdbcType=VARCHAR}
    </if>
    <if test="manageParam.status != null and manageParam.status == '0'.toString()">
      <![CDATA[AND (DATE_FORMAT(plan_end_time, '%Y-%m-%d') < DATE_FORMAT(CURDATE(), '%Y-%m-%d'))]]>
      AND real_end_time is null
    </if>
    <if test="manageParam.status == '1'.toString()">
      AND CURDATE() BETWEEN (DATE_FORMAT(plan_end_time, '%Y-%m-%d')-interval 7 day) and DATE_FORMAT(plan_end_time, '%Y-%m-%d')
      AND real_end_time is null
    </if>
    <if test="manageParam.status == '2'.toString()">
      <![CDATA[AND (DATE_FORMAT(real_end_time, '%Y-%m-%d') > DATE_FORMAT(plan_end_time,'%Y-%m-%d'))]]>
    </if>
    <if test="manageParam.status == '3'.toString()">
      <![CDATA[AND (DATE_FORMAT(real_end_time, '%Y-%m-%d') < DATE_FORMAT(plan_end_time,'%Y-%m-%d'))]]>
    </if>
    <if test="manageParam.status == '4'.toString()">
      and plan_start_time is not null and  real_end_time is  null and real_start_time is  null
    </if>
    <if test="manageParam.status == '5'.toString()">
      and real_start_time is not null
      and  real_end_time is null and  plan_start_time is not null
    </if>
    <if test="manageParam.status == '6'.toString()">
      and real_end_time is null
    </if>
    <if test="manageParam.status == '7'.toString()">
      and real_end_time is not null
    </if>
    order by plan_end_time asc
  </select>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章