【问题标题】:SAS how to use a macro variable as a dateSAS如何使用宏变量作为日期
【发布时间】:2015-02-17 01:44:00
【问题描述】:

我有一个来自另一个宏的全局宏变量,看起来像 '01jan2014' 当你在日志中打印它时 即有强制引号

我想在 proc sql 语句中使用它,但我不能,因为它不喜欢变量类型。

如何将其转换为我的 proc sql 语句的 WHERE 子句中的日期?

【问题讨论】:

    标签: sas sas-macro


    【解决方案1】:
    %let yourdate = 01Feb2015;
    %put &yourdate; /* resolve to 01Feb2015 */
    
    proc sql;
    select *
    from have
    where date ge "&yourdate."d;
    

    %let yourdate2 = '01Feb2015'd;
    
    proc sql;
    select *
    from have 
    where date ge &yourdate2;
    

    我认为第一个更好,因为它不会在宏变量中包含'

    【讨论】:

    • 默认情况下,它会吐出带有“ ”的日期,而没有日期格式。这是我程序中无法更改的内容
    【解决方案2】:

    要将日期字符串转换为 DDMONYYYY 格式,只需在末尾添加 d

    '01jan2014'd
    

    将字符串转换为日期。

    在你的情况下:

    &var.d
    

    将解析为

    '01jan2014'd
    

    这将被解释为日期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多