Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SAS/SQL插入函数_Sas_Sql Insert_Sqldatatypes_Proc Sql - Fatal编程技术网

使用SAS/SQL插入函数

使用SAS/SQL插入函数,sas,sql-insert,sqldatatypes,proc-sql,Sas,Sql Insert,Sqldatatypes,Proc Sql,我想在一个新表中插入值,但我一直遇到相同的错误:values子句1尝试在insert表名后插入比指定的更多的列。这是如果我不在我的约会对象周围加上撇号。如果我加上撇号,我会被告知数据类型与第二个值不对应 proc sql; create table date_table (cvmo char(6), next_beg_dt DATE); quit; proc sql; insert into date_table values ('

我想在一个新表中插入值,但我一直遇到相同的错误:values子句1尝试在insert表名后插入比指定的更多的列。这是如果我不在我的约会对象周围加上撇号。如果我加上撇号,我会被告知数据类型与第二个值不对应

    proc sql;
    create table date_table
    (cvmo char(6), next_beg_dt DATE);
    quit;

    proc sql;
      insert into date_table 
    values ('201501', 2015-02-01)
    values ('201502', 2015-03-01)
    values ('201503', 2015-04-01)
    values ('201504', 2015-05-01);
    quit;
第二个值必须保留为日期,因为它稍后与>和<符号一起使用。我认为问题可能在于2015-02-01不是一个有效的日期格式,因为我在SAS网站上找不到它,但我不想改变我的整个表格

日期文字(常量)是紧跟在结束引号之后的带字母
d
的引号字符串。字符串的格式必须适用于
日期
信息

'01FEB2015'd
"01-feb-2015"d
'1feb15'd
如果您确实想插入一系列日期,那么只需使用带有DO循环的数据步骤。还要确保将多种日期格式中的一种附加到日期值,以便它们可以作为人类可以理解的文本打印

data data_table ;
  length cvmo $6 next_beg_dt 8;
  format next_beg_dt yymmdd10.;
  do _n_=1 to 4;
    cvmo=put(intnx('month','01JAN2015'd,_n_-1,'b'),yymmn6.);
    next_beg_dt=intnx('month','01JAN2015'd,_n_,'b');
    output; 
  end;
run;

日期文字(常量)是紧跟在结束引号之后的带字母
d
的引号字符串。字符串的格式必须适用于
日期
信息

'01FEB2015'd
"01-feb-2015"d
'1feb15'd
如果您确实想插入一系列日期,那么只需使用带有DO循环的数据步骤。还要确保将多种日期格式中的一种附加到日期值,以便它们可以作为人类可以理解的文本打印

data data_table ;
  length cvmo $6 next_beg_dt 8;
  format next_beg_dt yymmdd10.;
  do _n_=1 to 4;
    cvmo=put(intnx('month','01JAN2015'd,_n_-1,'b'),yymmn6.);
    next_beg_dt=intnx('month','01JAN2015'd,_n_,'b');
    output; 
  end;
run;

@tom在评论中建议您如何使用日期,并给出了如何有效使用日期的很好答案,这比键入值更不容易出错。我只是在insert语句中加入同样的内容

proc sql;
create table date_table
(cvmo char(6), next_beg_dt DATE);
quit;

proc sql;
  insert into date_table 
values ('201501', "01FEB2015"D)
;

@tom在评论中建议您如何使用日期,并给出了如何有效使用日期的很好答案,这比键入值更不容易出错。我只是在insert语句中加入同样的内容

proc sql;
create table date_table
(cvmo char(6), next_beg_dt DATE);
quit;

proc sql;
  insert into date_table 
values ('201501', "01FEB2015"D)
;

在SAS代码中,2015年2月1日由
'015年2月1日
表示。您需要一个带引号的文本,后面有字母
d
。文本必须采用日期信息可识别的格式。2015年2月1日用SAS代码中的
'01FEB2015'd
表示。您需要一个带引号的文本,后面有字母
d
。文本必须采用日期信息可识别的格式。