gpt4 book ai didi

sql - 如何使用两个/组合参数 1 个日期和 1 个时间(带条件)设置数据集参数

转载 作者:行者123 更新时间:2023-12-02 06:18:43 24 4
gpt4 key购买 nike

这是我当前的查询:

where cast(dateadd(h,cast(substring(case when timezoneoffset = 'Z' then '0' else timezoneoffset end,1,3) as int),cast(transactionendtime::timestamp as timestamp without time zone)) as date) >= ?
and cast(dateadd(h,cast(substring(case when timezoneoffset = 'Z' then '0' else timezoneoffset end,1,3) as int),cast(transactionendtime::timestamp as timestamp without time zone)) as date) <= ?

这是我的数据集中的参数: enter image description here

rp_startdaterp_enddate数据类型为Date必填参数
虽然rp_startTimerp_endTime时间值是24小时,每小时间隔,但这些也是非必需参数
enter image description here enter image description here

现在我想要的是当用户没有选择starttimeendtime(空值)时,我的查询就保持这样读取开始和结束日期,但是当用户选择starttime endtime时,我想查询它让条件将 startDate 和 endTimeendDate 和 endTime 组合为 DateTime,然后在我的查询传递中使用这两个查询

查询的附加信息:
开始和结束时间 = 空值 | 使用当前查询
同一日期开始时间 = 空值 | 使用当前查询
同一日期结束时间 = 空值 | 使用当前查询
相同日期开始和结束时间 = 非空 | 更改查询以包含时间
不同日期开始和结束时间 = 任意值 | 使用当前查询

最佳答案

您应该通过将两个输入都转换为时间戳来处理此问题,但使用 NVL() 来处理用户未输入时间的情况:

伪代码:

WHERE cast(dateadd(h,cast(substring(case when timezoneoffset = 'Z' then '0' else timezoneoffset end,1,3) as int),cast(transactionendtime::timestamp as timestamp without time zone)) as date) BETWEEN (date(?) || ' ' || NVL(?, '00:00:00'))::TIMESTAMP AND (date(?) || ' ' || NVL(?, '23:59:59'))::TIMESTAMP

关于sql - 如何使用两个/组合参数 1 个日期和 1 个时间(带条件)设置数据集参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57067526/

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