SQL语句模糊时间查询

SQL语句模糊匹配时间总结

实现的功能:
:输入时间“08:08:08”则可以匹配到“2020-6-6 08:08:08”

方法很多,本人只掌握并使用了自己认为最简单明了的一种方法。
先说思想,想要匹配数据库中的datetime类型数据,最关键的就是类型问题。我们传入的参数一般是字符类型的时间,由于与数据库的时间类型不匹配,因而直接使用like模糊查询是行不通的。所以先将数据库的数转换为字符类型(此处的转换不会影响数据中数据的真实类型),再进行like匹配就可以完成。
格式:

//将某张表的某个字段的值转换为书写的格式,然后进行like匹配
date_format(表名.字段名,'%Y-%m-%d %H:%i:%s') LIKE CONCAT('%','自定义时间','%')

例:

<delete id="deleteCourseTimeSingle">
	delete from t_course_time_single
    where
    	date_format(t_course_time_single.start_time,'%Y-%m-%d %H:%i:%s') LIKE CONCAT('%',#{startTime},'%')
    and
       date_format(t_course_time_single.end_time,'%Y-%m-%d %H:%i:%s') LIKE CONCAT('%',#{endTime},'%')
</delete>

你可能感兴趣的:(mysql,sql)