SAS日期功能

时间:2012-08-21 03:41:11

标签: sas

我有一个SAS数据集,其中一个名为ISSUE_DATE的列是文本类型,其日期值格式为'YYYYMMDD'。我正在针对此数据集编写查询,并希望检索ISSUE_DATE为< = today -2的所有行。我该如何为此编写查询。

SELECT * FROM WORK.DATASET WHERE ISSUE_DATE< = today() - 2。

我是SAS新手,对日期功能和转换知之甚少。非常感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:6)

您需要使用INPUT功能和相关信息将数据类型转换为数字,以便SAS识别日期。您可以在WHERE子句中执行此操作,从而节省创建额外的列。所以你的查询看起来像:

SELECT * FROM WORK.DATASET WHERE INPUT(ISSUE_DATE,YYMMDD8。)< = today() - 2

答案 1 :(得分:1)

跟进Keith的回答,这样做效率可能更高:

SELECT * 
FROM   WORK.DATASET 
WHERE  ISSUE_DATE <= PUT( today()-2 , YYMMDDN8.)

这将使SAS免于必须在每次观察时运行INPUT功能。