Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 当from和to date都是可选的时,如何使用JDBI查询日期范围?_Sql_Postgresql_Jdbi - Fatal编程技术网

Sql 当from和to date都是可选的时,如何使用JDBI查询日期范围?

Sql 当from和to date都是可选的时,如何使用JDBI查询日期范围?,sql,postgresql,jdbi,Sql,Postgresql,Jdbi,我需要查询从日期到日期之间的订单列表。两者都是可选的,如果未提供,则应从WHERE子句中排除。我需要使用JDBI为Postgres实现这一点 例: 如果仅提供起始日期,则查询应为: 从订单日期>=:fromDate和country=:country的订单中选择id、总计、日期和国家/地区 如果仅提供了最新信息,则查询应为: 从订单中选择id、total、date、country,其中订单日期在JDBI中没有什么特殊功能可以让您这样做 你的选择是: 检查代码中的任何一个参数是否为null,并调用适

我需要查询从日期到日期之间的订单列表。两者都是可选的,如果未提供,则应从WHERE子句中排除。我需要使用JDBI为Postgres实现这一点

例:

如果仅提供起始日期,则查询应为:

从订单日期>=:fromDate和country=:country的订单中选择id、总计、日期和国家/地区

如果仅提供了最新信息,则查询应为:


从订单中选择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您能给我举一个动态生成查询的示例吗?非常感谢。