我有一个 SAS 数据集,其中名为ISSUE_DATE
文本类型的列之一是日期值,格式为'YYYYMMDD'
. 我正在针对此数据集编写查询,并希望检索ISSUE_DATE
<= today -2 的所有行。我该如何为此编写查询。
SELECT * FROM WORK.DATASET WHERE ISSUE_DATE <= today()-2.
我是 SAS 新手,不太了解日期函数和转换。任何帮助是极大的赞赏。
谢谢
我有一个 SAS 数据集,其中名为ISSUE_DATE
文本类型的列之一是日期值,格式为'YYYYMMDD'
. 我正在针对此数据集编写查询,并希望检索ISSUE_DATE
<= today -2 的所有行。我该如何为此编写查询。
SELECT * FROM WORK.DATASET WHERE ISSUE_DATE <= today()-2.
我是 SAS 新手,不太了解日期函数和转换。任何帮助是极大的赞赏。
谢谢
您需要使用 INPUT 函数和相关信息将数据类型转换为数字,以便 SAS 识别日期。您可以在 WHERE 子句中执行此操作,这样可以节省创建额外列的时间。所以您的查询将如下所示:
SELECT * FROM WORK.DATASET WHERE INPUT(ISSUE_DATE,YYMMDD8.) <= today()-2
跟进基思的回答,这样做可能更有效:
SELECT *
FROM WORK.DATASET
WHERE ISSUE_DATE <= PUT( today()-2 , YYMMDDN8.)
这将使 SAS 不必在每次观察时运行 INPUT 函数。