我有一个大型 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 中我应该使用不同的函数或方法吗?
这是通过使用
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))