不管是mysql,还是sqlserver的sql语句如果直接使用 :
create_time >= '2021-06-16' and create_time <= '2021-06-16'
查询的时候,都会自动补全时间,实际查询sql语句为:
create_time >= '2021-06-16 00:00:00' and create_time <= '2021-06-16 00:00:00'
这时,我们就查不到我们所需要的。我们怎么做呢?
- 一种方法:自己补全时间,改造sql语句为:
create_time >= '2021-06-16 00:00:00' and create_time <= '2021-06-16 23:59:59'
- 另一种办法:对时间字段进行格式化成我们所需要的,数据库不同,语句也不同,我喜欢用第二种,列出我使用过的2种数据库:
- mysql数据库
date_format(create_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d') AND date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
- sqlserver数据库
convert(varchar(10),create_time,120) >= convert(varchar(10),#{beginTime},120) AND convert(varchar(10),create_time,120) <= convert(varchar(10),#{endTime},120)
- mysql数据库
更多推荐
sql语句的时间比较(时间段查询) ---- 记录
发布评论