can';t插入mmddyy10。格式化过程sql
我有一个表,列为_of _date,格式为MMDDYY10。在SAS 7.1中can';t插入mmddyy10。格式化过程sql,sql,date,sas,sql-insert,Sql,Date,Sas,Sql Insert,我有一个表,列为_of _date,格式为MMDDYY10。在SAS 7.1中 proc sql; INSERT INTO mytable (as_of_date) VALUES (12/31/2016); run; 我得到以下错误: 错误22-322:语法错误,应为以下内容之一:带引号的字符串、数字常量、日期时间常量, 缺少值,),+,,,,,-,缺少,空,用户 错误200-322:符号无法识别,将被忽略 注意:如果我将该值更改为12/31/16,它仍然不起作用。
proc sql;
INSERT INTO mytable (as_of_date)
VALUES (12/31/2016);
run;
我得到以下错误:错误22-322:语法错误,应为以下内容之一:带引号的字符串、数字常量、日期时间常量, 缺少值,),+,,,,,-,缺少,空,用户 错误200-322:符号无法识别,将被忽略 注意:如果我将该值更改为12/31/16,它仍然不起作用。如果我在它周围加上引号('12/31/2016'),我会得到错误:
错误:VALUES子句1的值1与对象项列表(在SELECT中)中相应列的数据类型不匹配 条款)
如果插入时没有斜杠(12312016),则插入时不会出现错误,******您需要在引号内使用DDMMMYYYY格式和
d
修饰符:
proc sql noprint;
INSERT INTO mytable (as_of_date)
VALUES ("31dec2016"d);
quit;
另一种方法是SAS在日期格式下查找数值。您可以检查实际值,并使用以下代码获得相同的结果:
data check;
date = "31dec2016"d;
run;
proc sql noprint;
INSERT INTO mytable (as_of_date)
VALUES (20819);
quit;