sql 根据日期模糊查询dateTime类型经验
日期格式的like模糊查询真的好怪,在一个项目中,我试了很多种查法:
select * from T where sendTime like ‘%2007_12_%’ 可以查询2007年12月的所有记录
如果like条件改为’%2007-12-%’ ,’%2007_12_3%’ ,或’%2007_12_30%’ 都查不出数据。还有:
select * from T where sendTime like ‘%12_30%’ 可以查询12月30日的所有记录
如果like条件改为’%07_12_30%’ 也查不出数据。
一直搞不明白是怎么回事。不过现在找到了一个很好的解决方法:
将数据库中的时间字段格式改为日期格式。如:
SELECT * FROM T WHERE Convert(varchar,sendTime,120) LIKE ‘2007-12-30%’
或者直接点:select * from tb_ClockIn
where C.ClockInTime between ‘2020-1-1 0:0:0’ and ‘2020-1-1 23:59:59’;