今天在进行数据查询时,遇到了一个问题,按照录入日期进行查询,情况如下:
1.在我们系统date类型 字段中,比如2019-2-1 12:23:01存储的为这种格式,但是前台页面传过来为2019-2-1格式的字符串,所以我们需要进行格式转换,但是转换格式精度问题导致意想不到的问题,比如我查2018-12-7号的数据,下面为sql:
select * from table s where s.input_date>=to_date('2018-12-7','yyyy-MM-dd') and s.input_date<=to_date('2018-12-7','yyyy-MM-dd')
执行sql并没有查询出所需要的数据,因为我们input_date日期类型格式问题,在转换过程中精度不对,所以查询不出来,查阅网上有一种解决方案是在各式中增加fm >>>yyyy-fmMM-fmdd 这种是错误的处理方式,只能生效一个,并不能将月和日进行特殊处理,最后没办法,使用其他思路进行处理,在我们结束日期时增加1然后进行<处理,完美解决,如果各位有更好的处理方案,请下面留言。
select * from table s where s.input_date>=to_date('2018-12-7','yyyy-MM-dd') and s.input_date<to_date('2018-12-7','yyyy-MM-dd')+1