SAS插入日期格式

SAS insert date format

我有以下代码:

PROC SQL;

    CREATE TABLE Hub_Category2 (
    CategoryID INT NOT NULL,
    CategoryName VARCHAR(15) NOT NULL,
    LOAD_DATE NUM FORMAT=DATETIME22. NOT NULL,
    RECORD_SOURCE VARCHAR(255) NOT NULL);
RUN;

quit;

%let "LOAD_DATE: %sysfunc(datetime(),datetime22.)"; 

%let RECORD_SOURCE='123'; 

proc sql;

    CREATE VIEW VIEW_HUB_CATEGORIES AS
    SELECT 
    CategoryID,
    CategoryName,
    &LOAD_DATE as LOAD_DATE, 
    &RECORD_SOURCE as RECORD_SOURCE 
    FROM  LIB.CATEGORIES;
RUN;
Quit;

当我运行下面的代码

proc sql;

  insert into Hub_Category2 select * from VIEW_HUB_CATEGORIES;

  run;

Quit;

出现以下错误。

proc sql;
    72         insert into Hub_Category2 select * from VIEW_HUB_CATEGORIES;
 ERROR: Value 3 on the SELECT clause does not match the data type of the 
corresponding column listed after the INSERT table name.

我想,我在格式化日期、插入或使用宏时出错了。请帮帮我

宏变量 LOAD_DATE 不存在,或者在源代码生成方面的值不正确。

尝试

%let LOAD_DATE = %sysfunc(datetime());  %* macro variable value is source code (a bunch of digits) representing current datetime;
%let RECORD_SOURCE = '123';             %* macro variable value is source code for a single quoted string literal;

proc sql;
    CREATE VIEW VIEW_HUB_CATEGORIES AS
    SELECT 
    CategoryID,
    CategoryName,
    &LOAD_DATE as LOAD_DATE, 
    &RECORD_SOURCE as RECORD_SOURCE 
    FROM  LIB.CATEGORIES;
RUN;

处的 LOAD_DATE 列中放置的值
&LOAD_DATE as LOAD_DATE

不需要为了人类可读性而格式化,它需要是日期时间值本身。