2

proc sqlまたはdataステップにdatetime値を次のように変換できる関数があることを知っている人はいますか:たとえば15分間隔:

03NOV2010:00:00:02 --> 0-15
03NOV2010:00:16:02 --> 15-30 
4

2 に答える 2

1

1つの方法は、日付をUNIXタイムスタンプに変換することです。UNIXタイムスタンプは、1970年1月1日からの秒数です。次に、15 * 60を法として、最後の15分マークを過ぎた秒数を指定できます。

たとえば、現在の時刻を使用しnow()ます。

select now() - interval unix_timestamp(now())%(15*60) second

これは私のために印刷20:00されます(ここでは20:08です)。

于 2010-11-03T23:08:50.550 に答える
1

日時値の分コンポーネントにフォーマットを適用したいようです。

SASを使用すると、次のようなことを試すことができます。

proc format;
  value min15int
    00-15 = "00-15"
    15<-30= "16-30"
    30<-45= "31-45"
    45<-60= "46-60";
run;

data test;
  a='03NOV2010:00:00:02'dt;output;
  a='03NOV2010:00:16:02'dt;output;
run;

data test2;
  set test;
    b=minute(a);
    c=b;
    format c min15int.;
run;

これはただ速くて汚いです、あなたはそれをあなたの要件に適応させることができます。原則として、特定の形式が適用された値を表示するための表示形式を作成しているだけです。日時の分コンポーネントである変数「b」を個別に作成し、変数「c」でフォーマットを適用しています。

hth。

于 2010-11-03T23:11:18.950 に答える