我希望为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中定义这些变量的正确方向,我将不胜感激。
答案 0 :(得分: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;