mybatis查询时间段的sql语句(使用MySQL函数DATE_FORMAT)

场景:一个sql查询中有一个限制条件是时间段的限制。

下面是我的XML文件中的SQL

<select id="queryKpiByElems" resultMap="kpiEntity" parameterType="com.nari.platform.entity.KpiReqVo">
		SELECT * FROM monitor_statistics_latest
		WHERE `bc_id` = #{bcId}
		AND `kpi_name` = #{kpiName}
		AND `kpi_type` = #{kpiType}
		<if test="startTime !=null and startTime != ''">
			<![CDATA[   and DATE_FORMAT(created_at, '%Y-%m-%d')>=  DATE_FORMAT(#{startTime}, '%Y-%m-%d')   ]]>
		</if>
		<if test="endTime !=null and endTime != ''">
			<![CDATA[   and DATE_FORMAT(created_at, '%Y-%m-%d')<  DATE_FORMAT(#{endTime}, '%Y-%m-%d')   ]]>
		</if>
		ORDER BY `created_at` DESC
</select>

这里我们使用了MySQL函数DATE_FORMAT()

mysql的DATE_FORMAT()函数

定义: DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
语法: DATE_FORMAT(date,format)
date 参数是合法的日期。format 规定日期/时间的输出格式。
详细的教程请见W3school链接

常用format

format 结果示例
%Y-%m-%d 2020-02-12
%Y-%m-%d %H:%i:%s 22020-02-12 04:55:46
%b %d %Y %h:%i %p Feb 12 2020 04:58 AM
发布了19 篇原创文章 · 获赞 4 · 访问量 1565

猜你喜欢

转载自blog.csdn.net/DATANGguanjunhou/article/details/104269667