SAS将字符串存储日期转换为DDMonYY(date7。)到SAS Date

时间:2016-12-19 17:01:56

标签: date sas

我的数据集的日期存储为ddMonyy格式的字符串,例如19Dec16。

使用date7转换字符串时。有关SAS日期的信息,有些年份被解释为19年,有些年份被解释为20年。

以下是示例代码

data strDates;
infile cards;
input StringDate $;
cards;
31Dec99
01Jan00
19Dec16
31Dec25
01Jan26
;
run;
data convertTest;
set strDates;
format Date date9.;
Date=input(StringDate,date7.);
run;

今天运行代码(2016年12月19日)会产生以下结果

strDate  date
31Dec99  31DEC1999
01Jan00  01JAN2000
19Dec16  19DEC2016
31Dec25  31DEC2025
01jan26  01JAN1926

01Jan00和31Dec25之间的日期分配到2000-2025年,而01Jan26-31Dec99的日期被视为1926-1999年

问题:

如何确定2000年或1900年是否会增加?我怀疑它依赖于运行时(代码运行的日历年?) - 但我无法在SAS文档中找到任何对此的引用。

1 个答案:

答案 0 :(得分:2)

有一个选项YEARCUTOFF,根据您的系统和版本,可能有20或26的值。有关更改的详细信息,请参阅KB note 46368

听起来你正在使用SAS 9.4,这意味着默认值为26:0-25的任何内容都是'20xx',26-99的任何内容都是'19xx'。如果该值对您的数据不起作用(或者自己构建4位数年份),则可以更改YEARCUTOFF选项。