gpt4 book ai didi

sql - 当使用 JDBI 从和到日期都是可选的时,如何在日期范围之间查询?

转载 作者:行者123 更新时间:2023-11-29 12:58:30 25 4
gpt4 key购买 nike

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

例如:

如果只提供起始日期,查询应该是:

SELECT id, total, date, country FROM orders WHERE order date >=:fromDate AND country =:country

如果只提供日期,查询应该是:

SELECT id, total, date, country FROM orders WHERE order date <:toDate AND country =:country

如果两个日期都没有提供:

SELECT id, total, date, country FROM orders WHERE country =:country

感谢您的帮助。

最佳答案

JDBI 中没有什么特别之处可以让您这样做。

您的选择是:

  1. 在您的代码中检查任一参数是否为 null,并调用适当的 DAO 方法(对于 null/非 null 的所有可能排列,您需要 4 个方法)

  2. 一些使用 PostgreSQL CASE 表达式的 SQL,像这样:

    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

关于sql - 当使用 JDBI 从和到日期都是可选的时,如何在日期范围之间查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36634723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com