SAS从excel导入日期

SAS从excel导入日期,sas,Sas,我有一个xlsx数据集,我使用proc import导入它。excel中有一列保存日期值,如: 2018-11-30 00:00:00 当我将其导入SAS时,它会自动将其转换为数字43434。 当我尝试将其转换为日期:put(col,date9.)时,我得到: 2078-12-01 发生了什么事?我怎样才能找回正确的日期。我尝试了mixed=yes选项,但它不适用于dbms=xlsx。当我使用dbms=excel时,它无法按预期工作有时SAS会将日期作为原始excel日期导入。我不知道确切的原因

我有一个xlsx数据集,我使用proc import导入它。excel中有一列保存日期值,如: 2018-11-30 00:00:00 当我将其导入SAS时,它会自动将其转换为数字43434。 当我尝试将其转换为日期:put(col,date9.)时,我得到: 2078-12-01


发生了什么事?我怎样才能找回正确的日期。我尝试了mixed=yes选项,但它不适用于dbms=xlsx。当我使用dbms=excel时,它无法按预期工作

有时SAS会将日期作为原始excel日期导入。我不知道确切的原因或时间,但我认为这与日期的格式有关。如果发生这种情况,则将日期减去21916以将Excel日期转换为SAS日期

data want;
    set imported_from_excel;

    date = excel_date - 21916;
run;

有时SAS会将日期作为原始Excel日期导入。我不知道确切的原因或时间,但我认为这与日期的格式有关。如果发生这种情况,则将日期减去21916以将Excel日期转换为SAS日期

data want;
    set imported_from_excel;

    date = excel_date - 21916;
run;

在将列导入SAS之前,能否修复Excel中的列,使所有值都是有效日期?当列具有混合类型时,SAS将强制将其作为字符导入。当它这样做时,它将获取Excel用于存储日期的数字的字符表示形式,而不是人类可读的格式化值。在将其导入SAS之前,能否在Excel中修复该列,使所有值都是有效日期?当列具有混合类型时,SAS将强制将其作为字符导入。当它这样做时,它将获取Excel用于存储日期的数字的字符表示形式,而不是人类可读的格式化值。在Excel中,包含日期值的单元格通常格式正确,以便呈现人类可读的日期表示形式。当单元格格式更改为数字或重置(为常规)时,Excel将显示与Excel日期对应的数字。链接到Erik W.Tilanu的会议论文在Excel中,包含日期值的单元格通常格式正确,以便呈现人类可读的日期表示。当单元格格式更改为数字或重置(为常规)时,Excel将显示与Excel日期对应的数字。链接到Erik W.Tilanus关于它的会议论文