Java,PostgreSQL时间范围查询
在业务中使用到了greenplum数据库,需要根据时间条件查询数据,项目中采用 postgresql 的驱动。发现在查询过程中能查出数据,但是执行查询需要很长时间。这是为什么呢?
数据库连接驱动
数据库连接驱动配置如下:
1 | <dependency> |
发现问题
由于时间查询条件是按照之前mysql的写法直接复制过去的(时间范围是参数,类型为String)。
mapper接口如下:
1 | List<HistoryData> getHistoryData(@Param("type") String type, @Param("services") List<String> services, @Param("startTime") String startTime, @Param("endTime") String endTime); |
mybatis中sql:
1 | <select id="getHistoryData" resultType="com.example.entity.HistoryData"> |
解决问题
将String类型的参数改为java.sql.Timestamp
1 | List<HistoryData> getHistoryData(@Param("type") String type, @Param("services") List<String> services, @Param("startTime") Timestamp startTime, @Param("endTime") Timestamp endTime); |