关于查询接口时间范围查询条件但数据库中是字符串的处理方法

1)问题背景

  前几天做了一个查询接口,这个接口要求查询的数据不是本地插入数据库的,而是通过洛神从其他地方的数据仓库同步过来的,对方给定的时间字段是字符串,但常规情况一般是表中设置为datetime,然后对应实体设置为LocalDateTime,但此次该查询条件是字符串。

2)遇到的问题

  要求查询的时间条件是一个范围条件,比如查询2020-05-08至2020-06-30的范围数据,之前打算使用betweenAnd去解决,库中自建了几条测试数据测试发现没有什么问题,但是数据仓库同步过来的数据至少也有400W左右,所以如果依然使用betweenAnd去查询数据库中的数据就出现了问题,现象就是程序中sql执行后仿佛石沉大海没有音讯了。

3)解决方案

  求助Leader之后将这种范围查询条件的BetWeenAnd使用ge和le(大于等于和小于等于)去替换,然后解决了这一问题,betweenAnd在超大数据量下使用是否有问题,还需进一步确认。

4)注意事项

  当要查询的条件如此处的日期在数据库中是字符串时,前端传递的查询参数在格式上一定要与数据库中的格式一致,比如数据库中该字段的字符串为20200528,则前端传递的参数也一定要是严格的xxxxxxx纯数字的形式,必须注意这一定,如果格式不一致是无法查询出数据的。

posted @ 2020-06-08 16:59  云翊宸  阅读(608)  评论(0)    收藏  举报