SAS 全球日期比较

2024-04-18

我正在尝试进行日期比较,但没有得到正确的结果。有谁知道发生了什么事吗?

%macro ttt;
    %let check_start = 28APR2014;
    %if "&check_start."d < "25may2014"d %then %let true = 1;
    %else %if "&check_start."d > "25may2014"d %then %let true = 2;
    %put &true;
%mend;
%ttt;

14         %macro ttt;
15          %let check_start = 28APR2010;
16          %if "&check_start."d < "25may2014"d %then %let true = 1;
17          %else %if "&check_start."d > "25may2014"d %then %let true = 2;
18          %put &true;
19          %mend;
20          %ttt;
true = 2

宏变量 true 应等于 1


在这种情况下,您需要使用 %sysevalf() 来评估比较。以下作品。

%macro ttt;
    %let check_start = 28APR2015;
    %if %sysevalf("&check_start"d < '25may2014'd) %then %let true=1;
    %else %if %sysevalf("&check_start."d > '25may2014'd) %then %let true=2;
    %put &true.;
%mend;
%ttt;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SAS 全球日期比较 的相关文章

  • SAS proc sql返回group by/order by变量的重复值

    我有一些相当简单的 SQL 应该为每个资产每季度提供 1 行 相反 我每组得到多行 下面是 SQL SAS 数据步骤和一些输出数据 重复行数 在下面的数据中为 227708 等于 Num borrowers 即 asset1 的行数 pro
  • SAS 无法识别日期格式

    我有以下字符日期格式 3 1990 4 1990 5 1990 我尝试了以下代码 data work temps set indata newdate input strip Date MMYYSw rename newdate date
  • SAS LOOP - 从具有值的记录创建列

    假设我有随机诊断代码 例如 001 v58 142 如何从记录中的代码构造列 Input id found code 1 1 001 2 0 v58 3 1 v58 4 1 003 5 0 v58 15000 0 v58 Output id
  • VBA - 打开Excel,查找和替换,删除行,另存为csv

    我正在尝试用VBA编写一个程序 以便我可以从SAS 一种统计编程软件 远程操作excel文件 我希望该程序能够完成以下任务 打开指定的excel文件 查找标题行中的所有空白并将其替换为空 例如 测试名称 变为 测试名称 如果行中的第一个单元
  • SAS - 使用另一列中的值动态创建列名称

    我有一列包含许多从 XML 解析器解析的标志 数据如下 USERKEYED Y VALMATCH N DEVICEVERIFIED N EXCEPTION N USERREGISTRD N ASSOCIATE Y EXTERNAL N GR
  • 在 SAS 中,捕获语法错误的好技术/选项是什么?

    在增强的编辑器中 颜色可能会给您提示 然而 在大型机上 我不相信编辑器中有任何东西可以帮助您 I use OPTIONS OBS 0 noreplace obs 0 选项指定从输入中读入 0 个观测值 dataset 和 NOREPLACE
  • SAS 循环遍历宏变量列表

    首先 我是新人 所以如果这不是一个好问题 我深表歉意 我搜索过但没有找到类似的东西 我不确定我的方法是否正确 因此我们将不胜感激 我正在为一所有学期的学校创建一个数据集 例如 2017SP 是 2017 年春季 2017SU 是 2017
  • 北欧航空公司。变量是否在数据步骤的每次迭代中都设置为缺失?

    我一直认为数据步骤的每次迭代都将变量设置为缺失 然而 在下面的代码中 变量看起来像是保留了最开始获取的值 我不明白为什么会发生这种情况 data one input x y datalines a 10 a 13 a 14 b 9 run
  • 使用 Teradata ODBC 与 Teradata 数据库的 SAS 连接

    我正在尝试连接到 SAS 中的 Teradata 我在机器上设置了 Teradata ODBC 目前我的假设是使用 ODBC 是我访问数据库的唯一方法 这是我的连接命令的语法 库名称 Teradata ODBC dsn dsnname ui
  • 导出文件期间检测到打开代码语句递归

    我尝试在 SAS 中导出文件 但收到 检测到打开代码语句递归 错误 由于我根据根据提示日期定义为宏变量的日期导出多个文件 因此我想用此变量命名要导出的文件 但它不起作用 如果有人帮助我 我将非常感激 rep date 30APR2015 0
  • 以批处理模式运行时提示输入 SAS ODBC 连接密码

    由于各种原因 我更喜欢尽可能以批处理模式运行 SAS 程序 出于安全原因 我希望每当与 Teredata 仓库建立 ODBC 连接时 SAS 都会提示我输入密码 我可以同时拥有这两个东西吗 以下代码在从 SAS 交互运行时工作正常 但在批量
  • 有效连接多个 sas 数据集

    我有超过 200k 个具有相同变量 n macro catDat name nbr call in new dataset data new set libin name run reorder names proc sql noprint
  • 通过电子邮件发送 SAS html 输出

    我正在使用 SAS Enterprise Guide 6 1 我正在尝试使用 Windows 调度程序对下面的程序进行批处理以生成每周报告 它将有一些过程打印和 sgplots 我将其发送给的用户是高级用户 并且没有 SAS 如果他安装了
  • 从 .Net 中的 SAS 数据源读取数据

    我被要求在 ASP Net 应用程序中从 SAS 读取一些数据 我有 Windows 窗体应用程序的工作代码 然而相同的代码doesn t在 ASP Net 中工作 但我可以尝试一下 具有相同引用的干净项目始终会失败 这是我所得到的连接 S
  • sas7bdat 变量名称中带有空格

    我收到了几个扩展名为 sas7bdat 的 SAS 数据集文件 我在 Windows 上使用 SAS 9 3 这些文件的创建者显然使用了不同的环境和 或软件 许多文件的 var 名称包含空格和其他无效字符 甚至运行一个proc conten
  • 删除 SAS 中的表

    什么是最高效的SAS中删除表的方法 我有一个循环并删除大量表的程序 想知道 PROC SQL 之间是否存在性能差异 和过程数据集 一次删除一张桌子 或者如果还有其他方法吗 如果外包给操作系统是合理的 那可能是最快的 否则 我的不科学观察似乎
  • 将 GMT 日期时间转换为本地日期时间

    我有一个 GMT 时区的日期时间值 如何将其转换为我当地的时区 我希望有一个功能可以实现这一点 请注意 由于是夏季 我不能只添加或减去差异 例如 该函数可以这样工作 data null gmtdatetime 17SEP14 09 42 1
  • Pandas 在读取 SAS 文件时数据类型正确失败

    我有一个SAS数据集 http www principlesofeconometrics com sas cars sas7bdat当我运行它时 我在 SAS 上得到以下输出 我还有以下 Python 代码 它获取 sas7bdat 文件并
  • 重新排列 sas 数据集中的变量 - 按字母顺序排列

    我有大约 500 列的数据集 我想按字母顺序重新排列所有变量 除了在 set 语句之前使用保留语句之外 我还能以其他方式做到这一点吗 您可以动态生成变量名称列表 并使用以下命令创建新数据集PROC SQL proc sql select n
  • SAS 日期格式与 SQL Server 日期不兼容

    我对 SAS 相当陌生 最近我们将一些 SAS 数据集迁移到 SQL Server 表 但我们仍在使用 SAS 进行分析 当 SAS 尝试从 SQL Server 表中引入数据并让 SAS 检查 srv edt 日期是否在 dos beg

随机推荐