Datetime SAS中的日期时间格式,可以';不能在Excel 2007中导出

Datetime SAS中的日期时间格式,可以';不能在Excel 2007中导出,datetime,sas,Datetime,Sas,早上好 SAS中的一个程序将在许多表中选择/合并/排序字母数字值(例如:14-Jan-2013 07:00:00.479)中的日期/时间,并创建一个表。 该程序使用指令“format E8601”和“format type$10”后面的几行。; 信息类型$10.,“是什么将日期转换为数值(例如:2013-01-14T07:02:03.647)。 在Excel 2007中导出此表时,该值将变为“”,并且不能以传统的日期/时间格式进行修改 怎么做?是否有其他格式(代替E8601)可用于以文本或字母数

早上好

SAS中的一个程序将在许多表中选择/合并/排序字母数字值(例如:14-Jan-2013 07:00:00.479)中的日期/时间,并创建一个表。 该程序使用指令“format E8601”和“format type$10”后面的几行。; 信息类型$10.,“是什么将日期转换为数值(例如:2013-01-14T07:02:03.647)。 在Excel 2007中导出此表时,该值将变为“”,并且不能以传统的日期/时间格式进行修改

怎么做?是否有其他格式(代替E8601)可用于以文本或字母数字值保存日期


感谢您的帮助。

SAS日期时间值在内部表示为浮点值,等于自1960年1月1日以来的秒数<代码>格式用于控制这些数值的外部表示方式。例如,考虑这一点:

data have;
  myDateTime1 = '14-Jan-2013 07:00:00.479'dt;
  myDateTime2 = '14-Jan-2013 07:00:00.479'dt;
  myDateTime3 = '14-Jan-2013 07:00:00.479'dt;

  format myDateTime2 datetime23.3
         myDateTime3 E8601DT23.3;

  put myDateTime1= 'as a number'
    / myDateTime2= 'as a normal SAS datetime'
    / myDateTime3= 'as an ISO 8601 datetime'
   ;
run;
运行时,这将显示在SAS日志中:

myDateTime1=1673766000.5 as a number
myDateTime2=14JAN2013:07:00:00.479 as a normal SAS datetime
myDateTime3=2013-01-14T07:00:00.479 as an ISO 8601 datetime
注意三个
myDateTime
变量的值相同,但根据指定的
格式显示不同

假设您有许可的PC文件格式的SAS访问权限,您可以使用
PROC EXPORT
创建Excel工作簿:

proc export data=have
     outfile='c:\temp\test_dates.xlsx'
     replace;
run;

Excel工作簿中格式为“datetime”值的两个变量的数据值将正确显示为Excel列。但是,Excel中的默认格式仅显示“日期”部分;要在Excel中显示完整的值,您需要更改Excel列格式。

字母数字是指字符串?你读过这个吗?您可以创建一个类似put(dt,datetime)的字符串。您如何导出它(您的代码是什么和/或您使用的向导是什么)?