0

私はuser_id畑とtime畑を持っています。timeフィールドはtimestampデータ型です。ユーザー ID には多くのログ時間が含まれる場合があります。ユーザーの時間と分の間の合計を見つけたいです。

時間と分に変換することはできましたが、各 ID の時間を合計することはできません。以下は私が使用したコードです。

select user_id, to_char (time_loged)as "Totalhours "
from logtable
4

1 に答える 1

1

これは、to_char()またはto_date()を使用してタイムスタンプを変換するOracleの例です。日形式を削除して、時間形式を分、秒に分割し、to_number()を使用してそれらを数値として合計するだけの時間形式を残すことができます。

SELECT to_char(to_timestamp ('2013-02-14 10:07:47.000' , 'YYYY-MM-DD HH24:MI:SS.FF'),'DD-MON-YYYY HH24:MI:SS') start_date
 FROM dual
/

  SQL> 14-FEB-2013 10:07:47


SELECT to_date(to_char(to_timestamp ('2013-02-14 10:07:47.000' , 'YYYY-MM-DD HH24:MI:SS.FF'),'DD-MON-YYYY HH24:MI:SS'), 'DD-MON-YYYY HH24:MI:SS') start_date
 FROM dual
 /

  SQL>  2/14/2013 10:07:47 AM


SELECT to_char(to_timestamp ('2013-02-14 10:07:47.000' , 'YYYY-MM-DD HH24:MI:SS.FF'),'HH24') start_date
 FROM dual
 /

 SQL> 10

  SELECT to_number(to_char(to_timestamp ('2013-02-14 10:07:47.000' , 'YYYY-MM-DD HH24:MI:SS.FF'),'MI')) minutes 
   FROM dual
  /

  SQL> 7

あなたの場合、データはすでにタイムスタンプですが、コードで日付を_timestampに変換する必要がありました。to_timestamp変換を無視し、to_char()、to_number()..を使用するだけです。

私の例はすべて常にテストされています。最後の例をそのままコピーして貼り付け、コードとの違いを確認してください。私のコメントを読んでください...

于 2013-02-14T13:32:11.783 に答える