Sql 无法在YYMMDD10中插入日期。在SAS中格式化为表
我想在YYMMDD10中插入日期值。格式化到我的表格中。使用日期9。该格式适用于表格,也适用于YYMMDD10。通过“put”成功显示正确/所需的输出,但在尝试将其插入表时出错 模式:Sql 无法在YYMMDD10中插入日期。在SAS中格式化为表,sql,sas,Sql,Sas,我想在YYMMDD10中插入日期值。格式化到我的表格中。使用日期9。该格式适用于表格,也适用于YYMMDD10。通过“put”成功显示正确/所需的输出,但在尝试将其插入表时出错 模式: PROC SQL; Create Table Work.Validation_Rules_Record ( TEMPLATE_ID varchar , RULE_ID varchar , I
PROC SQL;
Create Table Work.Validation_Rules_Record
(
TEMPLATE_ID varchar ,
RULE_ID varchar ,
INSTANCE_ID NUM,
REPORTING_ENTITY_ID NUM,
**REFERENCE_DATE num informat=yymmdd10. format=yymmdd10.,**
VALIDATION_RESULT varchar ,
VALIDATION_TIME num format=datetime19.2
) ;
QUIT;
%LET date_time=%SYSFUNC( DATETIME() );
%let refr_date='15feb2010'd;
%put %sysfunc(putn(&refr_date,yymmdd10.));
%let ref_date = %sysfunc(putn(&refr_date,yymmdd10.));
%put &ref_date;
使用DATE9时,下面的插入操作有效。作为格式,但不适用于YYMMDD10。如下图所示
PROC-SQL
insert into Work.Validation_Rules_Record
(
TEMPLATE_ID,
RULE_ID,
INSTANCE_ID,
REPORTING_ENTITY_ID,
**REFERENCE_DATE,**
VALIDATION_RESULT,
VALIDATION_TIME
)
Values
(
'C 01.00',
'v_m165' ,
3395,
26,
**"&ref_date"d,**
'C33',
&date_time.
)
;
select * from Work.Validation_Rules_Record ;
退出
如果你需要更多的信息,请告诉我
谢谢!
KC需要日期9。唯一地它不适用于其他格式。它没有使用信息或其他任何东西;这是一个日期常数
如果要使用,请使用输入
如果在随后插入的普通SAS数据集中使用此功能,请使用输入功能;在values语句中,您需要使用%sysfuncinputn。。。使用宏语言获取的函数inputn相当于数值函数的input语句。d需要DATE9。唯一地它不适用于其他格式。它没有使用信息或其他任何东西;这是一个日期常数
如果要使用,请使用输入
如果在随后插入的普通SAS数据集中使用此功能,请使用输入功能;在values语句中,您需要使用%sysfuncinputn。。。它使用宏语言获取inputn是与数值函数的input语句等效的函数。谢谢Joe。但我得到了以下错误:6601输入&引用日期,&信息,-22 76错误22-322:语法错误,应为以下之一:带引号的字符串、数字常量、日期时间常量、缺少的值、+、'、'、-、缺少的、空值、用户。错误76-322:语法错误,语句将被忽略。我想您不能在values语句中使用输入;你需要实际的文本。现在,这反映在编辑中。不过,总的来说,我希望您不要在生产代码中随意使用values语句;如果您使用的是从SAS数据集直接插入的“普通”插入语句,则输入语句是正确的。谢谢Joe。但我得到了以下错误:6601输入&引用日期,&信息,-22 76错误22-322:语法错误,应为以下之一:带引号的字符串、数字常量、日期时间常量、缺少的值、+、'、'、-、缺少的、空值、用户。错误76-322:语法错误,语句将被忽略。我想您不能在values语句中使用输入;你需要实际的文本。现在,这反映在编辑中。不过,总的来说,我希望您不要在生产代码中随意使用values语句;如果使用的是从SAS数据集插入的“普通”插入,则直接输入语句是正确的。
data test;
x='01JAN2013'd;
format x date9.;
run;
proc sql;
insert into test (x)
values (
%sysfunc(inputn(2014-01-01,yymmdd10.))
);
quit;