全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
24791 14
2013-03-14
悬赏 5 个论坛币 未解决
具体程序和报错请看下面代码,请各位高手帮忙解答下吧,拜谢了!

%LET begdate=put(intnx('month',today(),-1,'end'),yymmd7.)||'-01'; //为上月初得到的值为'2013-02-01'
%LET enddate=put(intnx('DAY',today(),-day(today())),yymmdd10.);   //为上月末得到的值为'2013-02-28'
proc sql;
%tdlink;
create table test as   
select *     
  from connection to teradata         
  (
        select *
     from wy_table
     where Card_Num='XXXXXXXXXXXXXXXX'
         and Event_Dt between &begdate and &enddate
   );
disconnect from teradata;

quit;

运行后报错为 Teradata prepare: Syntax error: Data Type "intnx" does not match a Defined Type name.

如果改成 %LET begdate='2013-02-01' %LET enddate='2013-02-28' 就可以正常运行了了。

比较奇怪,通过TD函数获取的是字符串类型的,这样有问题吗?还需要如何转换下?



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-3-14 10:57:00
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-3-14 12:20:26
  data 步函数不能随便在宏中使用,一般要加%或%sysyfunc,不过不知道put能不能在宏函数中使用
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-3-14 13:37:25
Imasasor 发表于 2013-3-14 12:20
data 步函数不能随便在宏中使用,一般要加%或%sysyfunc,不过不知道put能不能在宏函数中使用
input , put, 所有的数组函数等不能用于%sysfunc中。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-3-14 13:42:12
webgu 发表于 2013-3-14 13:37
input , put, 所有的数组函数等不能用于%sysfunc中。
嗯,但PUTN和PUTC又可以了
SAS在这些函数上的设定真是蛋疼啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-3-14 14:05:28
playmore 发表于 2013-3-14 13:42
嗯,但PUTN和PUTC又可以了
SAS在这些函数上的设定真是蛋疼啊
嗯,不报错,但是好像不能出结果。
查了下,putc,putn在运行时执行。
put在编译时执行。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群