Sql 当from和to date都是可选的时,如何使用JDBI查询日期范围?
我需要查询从日期到日期之间的订单列表。两者都是可选的,如果未提供,则应从WHERE子句中排除。我需要使用JDBI为Postgres实现这一点 例: 如果仅提供起始日期,则查询应为: 从订单日期>=:fromDate和country=:country的订单中选择id、总计、日期和国家/地区 如果仅提供了最新信息,则查询应为:Sql 当from和to date都是可选的时,如何使用JDBI查询日期范围?,sql,postgresql,jdbi,Sql,Postgresql,Jdbi,我需要查询从日期到日期之间的订单列表。两者都是可选的,如果未提供,则应从WHERE子句中排除。我需要使用JDBI为Postgres实现这一点 例: 如果仅提供起始日期,则查询应为: 从订单日期>=:fromDate和country=:country的订单中选择id、总计、日期和国家/地区 如果仅提供了最新信息,则查询应为: 从订单中选择id、total、date、country,其中订单日期在JDBI中没有什么特殊功能可以让您这样做 你的选择是: 检查代码中的任何一个参数是否为null,并调用适
从订单中选择id、total、date、country,其中订单日期在JDBI中没有什么特殊功能可以让您这样做 你的选择是: 检查代码中的任何一个参数是否为null,并调用适当的DAO方法,所有可能的null/notnull排列都需要4 某些SQL使用PostgreSQL大小写表达式,如下所示:
SELECT id, total, date, country FROM orders
WHERE order_date >= (case when :fromDate is null then 0 else :fromDate end)
AND order_date <= (case when :toDate is null then current_date else :toDate end)
AND country =:country
您是否尝试构建查询?另外,您如何确定何时传递单个日期是fromDate还是toDate?我在应用程序中的示例是在DAO接口中编写的查询,如@SqlQuerySELECT id,total,date,country FROM orders,其中country=:country。我不知道如何构建查询。日期作为名为fromDate和endDate的表单参数的POST接收。@Vvn您能给我举一个动态生成查询的示例吗?非常感谢。