0

我希望在 Netezza 中为我的 SQL 查询定义开始和结束日期。

我的代码每季度重新运行一次以提取最新数据,而不是更改代码中多个位置的日期字段,我希望定义一个可以在整个代码中重复使用的开始和结束日期。

我一直在尝试使用以下代码来获取 Aginity 中的开始和结束日期,但我的代码将无法运行

CREATE OR REPLACE PROCEDURE START_END_DATE_VARS()
  --SPECIFIC START_END_DATE_VARS
  LANGUAGE NZPLSQL 
  BEGIN
declare StartDate char;
declare EndDate char;
SELECT StartDate = TO_CHAR(last_day(add_months(now(),-1)),'YYYY-MM-DD') INTO StartDate;
SELECT EndDate = TO_CHAR(add_months(date_trunc('month', current_date),-35),'YYYY-MM-DD') INTO EndDate;
END

如果您能指导我如何在 Aginity/Netezza 中定义这些变量,我将不胜感激。

4

1 回答 1

0

这行得通,但如果你想使用这些日期,你应该将它们插入到某个表中等等。

CREATE OR REPLACE PROCEDURE START_END_DATE_VARS()
RETURNS CHARACTER VARYING(ANY)
LANGUAGE NZPLSQL AS
BEGIN_PROC

DECLARE
StartDate   CHAR(10);
EndDate     CHAR(10);

BEGIN 
StartDate := (SELECT TO_CHAR(last_day(add_months(now(),-1)),'YYYY-MM-DD'));
EndDate := (SELECT TO_CHAR(add_months(date_trunc('month', current_date),-35),'YYYY-MM-DD'));

RETURN('Start date: ' || StartDate ||' , End Date: ' ||EndDate );

END;
END_PROC;
于 2019-08-08T13:54:55.340 回答