如果mysql时间类型为DateTime,通过传入格式为Date类型的参数是无法查询出对应的数据,需要对类型做转换 将mysql的数据类型转换为'%Y-%m-%d' 传入的参数类型jdbcType=DATE <select id="selectPushData" parameterType="com.credlink.wechat.demo.entity.Wecaht_Push_Monitor_Template_Info" resultType="com.credlink.wechat.demo.entity.Wecaht_Push_Monitor_Template_Info"> select enterprie_id, enterprie_name, monitor_title, monitor_item, monitor_level_id, alter_date, publish_date, info_url from wecaht_push_monitor_template_info <choose> <when test="alter_date != null"> where DATE_FORMAT(alter_date,'%Y-%m-%d') = #{alter_date, jdbcType=DATE} </when> <when test="enterprie_name != null and enterprie_name !=''"> where enterprie_name = #{enterprie_name} </when> <otherwise> where monitor_level_id = #{monitor_level_id} </otherwise> </choose> order by alter_date DESC, enterprie_name, monitor_level_id </select>
mysql时间类型转换
SELECT DATE_FORMAT(NOW(),’%Y-%m-%d’) #输出类型DATE
输出结果:2020-04-18
SELECT DATE_FORMAT(NOW(),’%Y-%m-%d-%T’) #输出类型DATETIME
输出结果:2020-04-18-10:39:14
SELECT DATE_FORMAT(NOW(),’%Y’) #输出类型YEAR
输出结果:2020
SELECT DATE_FORMAT(NOW(),’%y’) #输出类型YEAR
输出结果:20
SELECT DATE_FORMAT(NOW(),’%m’) #输出类型 MONTH
输出结果:04
SELECT DATE_FORMAT(NOW(),’%d’) #输出类型DAY
输出结果:18
SELECT DATE_FORMAT(NOW(),’%T’) #输出类型TIME
输出结果:10:35:32