首页 > 解决方案 > 在 where 语句中处理 SQL DATE()

问题描述

我正在尝试将此代码编辑为动态的,因为我将安排它运行。通常我会在 where 语句中将日期输入为“YYYY-MM-DD”,因此为了使其具有动态性,我将其更改为 DATE()。我没有出错,但我也没有提取数据。我只需要格式方面的帮助,而我的谷歌搜索没有帮助。

PROC SQL;
CONNECT TO Hadoop (server=disregard this top part);

CREATE TABLE raw_daily_fcast AS SELECT * FROM connection to Hadoop(
SELECT DISTINCT
    a.RUN_DATE,
    a.SCHEDSHIPDATE, 
    a.SOURCE,
    a.DEST ,
    a.ITEM,
    b.U_OPSTUDY, 
    a.QTY,
    c.case_pack_qty

FROM CSO.RECSHIP a
  LEFT JOIN CSO.UDT_ITEMPARAM b
    ON a.ITEM = b.ITEM
  LEFT JOIN SCM.DIM_PROD_PLN c
    ON a.ITEM = c.PLN_NBR

WHERE a.RUN_DATE = DATE()
    AND a.SOURCE IN ('88001', '88003', '88004', '88006', '88008', '88010', '88011', '88012', 
                     '88017', '88018', '88024', '88035', '88040', '88041', '88042', '88047')
);
DISCONNECT FROM Hadoop;
QUIT;

标签: hadoophivesasproc-sql

解决方案


改变:

WHERE a.RUN_DATE = DATE() 

至:

WHERE a.RUN_DATE =  PUT(date(), YYMMDD10.) AS date 

推荐阅读