我有一个user_id字段,time字段。该time字段是timestamp数据类型。用户ID可能有很多日志时间。我想为用户找到以小时和分钟为单位的时间之和。
user_id
time
timestamp
我已经设法将小时数和分钟数转换为小时数和分钟数,但是我无法将每个ID的小时数相加。以下是我使用的代码。
select user_id, to_char (time_loged)as "Totalhours " from logtable
这是Oracle使用to_char()或to_date()转换时间戳的示例。您可以删除日期格式,而将时间格式仅将时间分隔为分钟,秒,然后使用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()…
我所有的示例都经过测试。复制并粘贴最后一个示例,以查看与您的代码的不同之处。阅读我的评论…