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
不需要为了人类可读性而格式化,它需要是日期时间值本身。
我有以下代码:
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
不需要为了人类可读性而格式化,它需要是日期时间值本身。