我正在尝试完成,我认为这很简单,SQL中的where
语句使用CurDate
而不是每次运行我的代码时都必须修改日期,我正在寻找where
声明要查看360度,从今天开始并向后工作。
我已经尝试过以下所有项目但两项都不会有效,请有人告诉我哪里出错了。
Where LastPD > CurDate()- interval 360 days;
Where LastPD > CurDate()-360;
Where LastPD > CurDate-360;
我正在尝试减少包含超过2000万行数据的文件,以显示过去6/12个月内LastPD
或过去6/12个月内AssignDate
的数据。
我之前使用过的代码如下:
Data DCARMSLive12LPD;
Set DCARMSLive12;
Where LastPD > '20170320';
run;
Data DCARMSLive12PLC;
Set DCARMSLive12;
Where AssignDate > '20MAr2017'd;
Run;
Data DCARMSLive06LPD;
Set DCARMSLive6;
Where LastPD > '20170920';
run;
Data DCARMSLive06PLC;
Set DCARMSLive6;
Where AssignDate > '20Sep2017'd;
Run;
我想替换where语句中的实际日期,这样每次运行代码时都不必手动更新它们。
答案 0 :(得分:0)
试试这个:
WHERE LastPD > DATE_SUB(CURDATE(), INTERVAL 360 DAY);
答案 1 :(得分:0)
Teradata使用标准SQL
CURRENT_DATE - INTERVAL '360' DAY
或更短(非标准)
CURRENT_DATE -360
日期文字也是标准SQL:
DATE '2018-03-21'
答案 2 :(得分:0)
谢谢大家,我最终解决了以下问题,因为我无法获得上述任何建议。
我将current_date添加为数据的变量,重新格式化yymmdd8。到Date9。并使用以下代码
Where LPD > Current_Date -360;
或 其中AssignDate> Current_Date -180;