1

24 時間の時間値を分に変換しようとしています

から:

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

に:

(NUM)
1060
993
1038

現在、時間値に 60 を掛けてい17*60ます16.55*6017.30*60

どうすればこれを達成できますか? 私はそれを正しくやっていますか?そして、私は何を間違っていますか?

4

2 に答える 2

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;

動作します。

于 2013-02-05T16:48:21.240 に答える
0

これが SQL とどう関係しているのかはわかりませんが、一般的に、時間は午前/午後のインジケータで 0 ~ 12 ではなく 0 ~ 23 であると仮定すると、この疑似コードは

  ( 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

1 日の始まり (真夜中、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
于 2013-02-05T18:51:31.643 に答える