从时间戳开始的小时数

时间:2013-02-14 12:23:55

标签: sql

我有一个user_id字段和time字段。 time字段为timestamp数据类型。 用户ID可能有很多日志时间。 我想找到用户的小时和分钟之间的总和。

我已设法转换为小时和分钟,但我无法总结每个ID的小时数。 以下是我使用的代码。

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

1 个答案:

答案 0 :(得分: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_timestamp convesion并使用to_char(),to_number()...

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