SAS(24小时)时间转换为分钟

时间:2013-02-05 16:45:15

标签: datetime type-conversion sas

我正在尝试将24小时时间值转换为分钟

自:

(TIME)
17:00:00 
16:55:00
17:30:00

要:

(NUM)
1060
993
1038

目前,我将时间值乘以60 17*6016.55*6017.30*60

我将如何做到这一点?我做得对吗?我做错了什么?

2 个答案:

答案 0 :(得分:2)

SAS时间值以秒为单位存储。如果它真的是'时间'值,无论如何,而不是字符串。因此,你可以分数60,而不是乘以。

data want;
input timeval TIME9.;
minutes=timeval/60;
format minutes BEST12.;
format timeval TIME9.;
put timeval= minutes=;
datalines;
17:00:00
16:55:00
17:30:00
;;;;
run;

如果它不是作为时间值(数字)存储而是作为字符串存储,则需要INPUT(timeval,TIME9。)才能这样做;所以

minutes = input(timeval,TIME9.)/60;

会起作用。

答案 1 :(得分:0)

不知道这与SQL有什么关系,但一般来说,假设小时是0-23而不是0-12,带有am / pm指示符,这个伪代码

  ( 60.0 * hours )    // convert 0-23 hours to minutes
+ minutes             // minutes don't need conversion
+ ( seconds / 60.0 )  // convert 0-59 seconds to fractional minute

应该从一天的开始(午夜,00:00:00)给你一个分数的分数。如果你有一个上午/下午指标,你需要将其考虑在内,如下所示:

  ( 60.0 * ( hours + ( isPM ? 12 : 0 ) ) ) // convert 0-23 hours to minutes
+ minutes                                  // minutes don't need conversion
+ ( seconds / 60.0 )                       // convert 0-59 seconds to fractional minutes
相关问题