问题:
我的时间戳以科学记数法显示。我想显示没有科学记数法的列,并创建第二列,格式为长日期,yyyy/mm/dd hh:mm:ss。
采取的步骤:
我已经将该列从 UNIX 纪元 (1960) 时间戳转换为 SAS 时间 (1970) 时间戳。但科学计数法仍然存在。我试过日期 20。也不行。
Timestamp in Scientific Notation
我当前的不足代码无法将时间戳列格式化为日期。
proc print data=heart._23a;
format timestamp date9.;
run;
结果:
它不会导致错误,但它 redimensions my matrix to a 1x3 .我需要获得一个相同维度的矩阵,只是带有重新格式化的时间戳。感谢任何帮助,但请保持简单,我在未知领域!
最佳答案
datetime17.
是 SAS 中的标准时间戳格式,但您还有许多其他选择。 ymddttm.
我相信,这与您正在寻找的最接近。
这里有一个重要区别:SAS 有两个概念,date
和 datetime
。 date
是自 1/1/1960 以来的天数并且没有时间部分,而 datetime
是自 1/1/1960 以来的秒数00:00:00 并且有时间和日期。您可以使用 datepart
转换日期时间 -> 日期,或使用 dhms
转换日期 -> 日期时间。
你的问题似乎也让两个时代倒退了。 UNIX 纪元是 1970。SAS 纪元是 1960。
最后,如果您想显示原始秒数,请使用 w.d
格式而不是 bestw.d
格式 - format timestampvar 14。
例如,w
是包括小数在内的总字符数(数字)。
关于sql - 从科学计数法到 yyyy/mm/dd hh :mm:ss 的 SAS 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38208722/