参数化 Presto SQL 语句 where 条件,以选择开始日期和结束日期之间的所有行

问题描述 投票:0回答:1

我有一个大型 SQL 语句,其中包含许多由WITH 语句绑定的较小 SQL 语句,并且所有语句都具有相同的日期条件。我的偏好是在一处以及所有设置条件的地方更新上限和下限。

我的开始和结束日期:

param AS (                       
                        TIMESTAMP '2024-03-23 23:59:50' AS start_date,
                        TIMESTAMP '2024-03-23 23:59:59' AS end_date  
),

我的位置条件:

 (FROM_UNIXTIME(hpd_help_desk.submit_date, 'UTC') BETWEEN (SELECT start_date from param) and (SELECT end_date from param))

这不是返回特定范围内的日期。在 Postgres SQL 中我应该使用不同的函数或方法吗?

sql postgresql
1个回答
0
投票

这是通过使用

NOW
INTERVAL
函数解决的。可以修改 INTERVAL 和 NOW 函数以获得所需的开始和结束日期。

   param AS (
                SELECT  
                        NOW() - INTERVAL '7' DAY   AS start_date,  
                        NOW() AS end_date   
    ),

在Where条件下通过以下方式实现:

(FROM_UNIXTIME(hpd_help_desk.submit_date, 'UTC') BETWEEN (SELECT start_date from param) and (SELECT end_date from param))
© www.soinside.com 2019 - 2024. All rights reserved.