五月天婷亚洲天久久综合网,婷婷丁香五月激情亚洲综合,久久男人精品女人,麻豆91在线播放

  • <center id="8gusu"></center><rt id="8gusu"></rt>
    <menu id="8gusu"><small id="8gusu"></small></menu>
  • <dd id="8gusu"><s id="8gusu"></s></dd>
    樓主: flyarrow998
    24426 14

    SAS獲取當(dāng)前日期的上月初日期、上月末日期問題 [推廣有獎]

    • 0關(guān)注
    • 0粉絲

    學(xué)前班

    80%

    還不是VIP/貴賓

    -

    威望
    0
    論壇幣
    5 個(gè)
    通用積分
    0
    學(xué)術(shù)水平
    0 點(diǎn)
    熱心指數(shù)
    0 點(diǎn)
    信用等級
    0 點(diǎn)
    經(jīng)驗(yàn)
    32 點(diǎn)
    帖子
    5
    精華
    0
    在線時(shí)間
    0 小時(shí)
    注冊時(shí)間
    2013-3-14
    最后登錄
    2013-3-14

    5論壇幣
    具體程序和報(bào)錯請看下面代碼,請各位高手幫忙解答下吧,拜謝了!

    %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;

    運(yùn)行后報(bào)錯為 Teradata prepare: Syntax error: Data Type "intnx" does not match a Defined Type name.

    如果改成 %LET begdate='2013-02-01' %LET enddate='2013-02-28' 就可以正常運(yùn)行了了。

    比較奇怪,通過TD函數(shù)獲取的是字符串類型的,這樣有問題嗎?還需要如何轉(zhuǎn)換下?



    關(guān)鍵詞:connection Disconnect Teradata proc sql Connect test sql create where
    沙發(fā)
    可~樂 發(fā)表于 2013-3-14 10:57:00 |只看作者 |壇友微信交流群
    1. data _null_;
    2. begdate=put(intnx('month',today(),-1,'b'),yymmdd10.);
    3. enddate=put(intnx('month',today(),-1,'e'),yymmdd10.);
    4. call symput("begdate",begdate);
    5. call symput("enddate",enddate);
    6. run;
    復(fù)制代碼
    已有 1 人評分經(jīng)驗(yàn) 論壇幣 學(xué)術(shù)水平 熱心指數(shù) 信用等級 收起 理由
    webgu + 30 + 30 + 1 + 1 + 1 分析的有道理

    總評分: 經(jīng)驗(yàn) + 30  論壇幣 + 30  學(xué)術(shù)水平 + 1  熱心指數(shù) + 1  信用等級 + 1   查看全部評分

    藤椅
    Imasasor 發(fā)表于 2013-3-14 12:20:26 |只看作者 |壇友微信交流群
      data 步函數(shù)不能隨便在宏中使用,一般要加%或%sysyfunc,不過不知道put能不能在宏函數(shù)中使用
    歡迎加入亞太地區(qū)第一R&Python數(shù)據(jù)挖掘群: 251548215;
    板凳
    webgu 發(fā)表于 2013-3-14 13:37:25 |只看作者 |壇友微信交流群
    Imasasor 發(fā)表于 2013-3-14 12:20
    data 步函數(shù)不能隨便在宏中使用,一般要加%或%sysyfunc,不過不知道put能不能在宏函數(shù)中使用
    input , put, 所有的數(shù)組函數(shù)等不能用于%sysfunc中。
    SAS資源
    1. SAS 微信:StatsThinking
    2. SAS QQ群:348941365
    報(bào)紙
    playmore 發(fā)表于 2013-3-14 13:42:12 |只看作者 |壇友微信交流群
    webgu 發(fā)表于 2013-3-14 13:37
    input , put, 所有的數(shù)組函數(shù)等不能用于%sysfunc中。
    嗯,但PUTN和PUTC又可以了
    SAS在這些函數(shù)上的設(shè)定真是蛋疼啊
    playmore邀請您訪問ChinaTeX論壇。!進(jìn)入ChinaTeX論壇
    地板
    webgu 發(fā)表于 2013-3-14 14:05:28 |只看作者 |壇友微信交流群
    playmore 發(fā)表于 2013-3-14 13:42
    嗯,但PUTN和PUTC又可以了
    SAS在這些函數(shù)上的設(shè)定真是蛋疼啊
    嗯,不報(bào)錯,但是好像不能出結(jié)果。
    查了下,putc,putn在運(yùn)行時(shí)執(zhí)行。
    put在編譯時(shí)執(zhí)行。
    SAS資源
    1. SAS 微信:StatsThinking
    2. SAS QQ群:348941365
    7
    flyarrow998 發(fā)表于 2013-3-14 14:18:47 |只看作者 |壇友微信交流群
    webgu 發(fā)表于 2013-3-14 14:05
    嗯,不報(bào)錯,但是好像不能出結(jié)果。
    查了下,putc,putn在運(yùn)行時(shí)執(zhí)行。
    put在編譯時(shí)執(zhí)行。
    那大蝦,我的代碼需要作如何修改呢?
    create table test as   
    select *     
      from connection to teradata         
      (
            select *
         from wy_table
         where Card_Num='XXXXXXXXXXXXXXXX'
             and Event_Dt between &begdate and &enddate
       );
    Event_Dt 需between 當(dāng)前系統(tǒng)日期的上月初日期及上月末日期,否則每個(gè)月我都得手工去修改日期,比較麻煩,不能用PUT該如何是好呢
    8
    webgu 發(fā)表于 2013-3-14 14:54:31 |只看作者 |壇友微信交流群
    flyarrow998 發(fā)表于 2013-3-14 14:18
    那大蝦,我的代碼需要作如何修改呢?
    create table test as   
    select *
    2樓的CODE應(yīng)該可以的。
    SAS資源
    1. SAS 微信:StatsThinking
    2. SAS QQ群:348941365
    9
    flyarrow998 發(fā)表于 2013-3-14 15:25:01 |只看作者 |壇友微信交流群
    webgu 發(fā)表于 2013-3-14 14:54
    2樓的CODE應(yīng)該可以的。
    按2樓代碼修改后運(yùn)行沒有報(bào)錯,但查詢無數(shù)據(jù),奇怪了,如果begdate和enddate確實(shí)為'2013-02-01'和'2013-02-28' 那么數(shù)據(jù)庫中是有數(shù)據(jù)的,后來通過select &begdate,&enddate 查看,&begdate 盡然變成了'2010' &enddate 變成了'1983',費(fèi)解。

    data _null_;

    begdate=put(intnx('month',today(),-1,'b'),yymmdd10.);

    enddate=put(intnx('month',today(),-1,'e'),yymmdd10.);

    call symput("begdate",begdate);

    call symput("enddate",enddate);

    run;

    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;
    10
    webgu 發(fā)表于 2013-3-14 16:27:51 |只看作者 |壇友微信交流群
    11   data _null_;
    12   begdate=put(intnx('month',today(),-1,'b'),yymmdd10.);
    13   enddate=put(intnx('month',today(),-1,'e'),yymmdd10.);
    14   call symput('begdate',begdate);
    15   call symput('enddate',enddate);
    16   run;

    NOTE: DATA statement used (Total process time):
          real time           0.00 seconds
          cpu time            0.00 seconds


    17
    18   %put  &begdate   &enddate;
    2013-02-01   2013-02-28
    SAS資源
    1. SAS 微信:StatsThinking
    2. SAS QQ群:348941365
    您需要登錄后才可以回帖 登錄 | 我要注冊

    本版微信群
    加好友,備注cda
    拉您進(jìn)交流群

    京ICP備16021002-2號 京B2-20170662號 京公網(wǎng)安備 11010802022788號 論壇法律顧問:王進(jìn)律師 知識產(chǎn)權(quán)保護(hù)聲明   免責(zé)及隱私聲明

    GMT+8, 2024-12-24 00:56