Proc SQL DATE() 在 where 语句中
Proc SQL DATE() in where statement
我正在尝试将此代码编辑为动态的,因为我打算将其安排到 运行。
通常我会在 where 语句中将日期输入为 'YYYY-MM-DD',因此为了使其动态,我将其更改为 DATE()。我没有出错,但我也没有提取数据。我只需要格式方面的帮助,但我的 google 搜索没有帮助。
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;
变化:
WHERE a.RUN_DATE = DATE()
至:
WHERE a.RUN_DATE = PUT(date(), YYMMDD10.) AS date
当 RUN_DATE 是字符串时,您可以在 SAS 端在线生成当前日期字符串
WHERE a.RUN_DATE = %str(%')%sysfunc(date(),yymmdd10.)%str(%')
AND ...
或
WHERE a.RUN_DATE = %sysfunc(quote(%sysfunc(date(),yymmdd10.),%str(%')))
AND ...
如果 RUN_DATE 是包含 DATE9 格式值的字符串,请将 yymmdd10.
更改为 date9.
我正在尝试将此代码编辑为动态的,因为我打算将其安排到 运行。 通常我会在 where 语句中将日期输入为 'YYYY-MM-DD',因此为了使其动态,我将其更改为 DATE()。我没有出错,但我也没有提取数据。我只需要格式方面的帮助,但我的 google 搜索没有帮助。
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;
变化:
WHERE a.RUN_DATE = DATE()
至:
WHERE a.RUN_DATE = PUT(date(), YYMMDD10.) AS date
当 RUN_DATE 是字符串时,您可以在 SAS 端在线生成当前日期字符串
WHERE a.RUN_DATE = %str(%')%sysfunc(date(),yymmdd10.)%str(%')
AND ...
或
WHERE a.RUN_DATE = %sysfunc(quote(%sysfunc(date(),yymmdd10.),%str(%')))
AND ...
如果 RUN_DATE 是包含 DATE9 格式值的字符串,请将 yymmdd10.
更改为 date9.