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

在您的情况下,数据已经是时间戳,而我必须在代码中将日期转换为时间戳。只需忽略 to_timestamp 转换并使用 to_char(), to_number()...

我所有的例子总是经过测试。按原样复制并粘贴最后一个示例,以查看与您的代码的区别。阅读我的评论...

于 2013-02-14T13:32:11.783 回答