我有一个user_id
领域和time
领域。该time
字段是timestamp
数据类型。一个用户 id 可能有很多日志时间。我想为用户找到以小时和分钟为单位的时间之和。
我已设法转换为小时和分钟,但我无法将每个 ID 的小时数相加。下面是我使用的代码。
select user_id, to_char (time_loged)as "Totalhours "
from logtable
我有一个user_id
领域和time
领域。该time
字段是timestamp
数据类型。一个用户 id 可能有很多日志时间。我想为用户找到以小时和分钟为单位的时间之和。
我已设法转换为小时和分钟,但我无法将每个 ID 的小时数相加。下面是我使用的代码。
select user_id, to_char (time_loged)as "Totalhours "
from logtable
这是使用 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()...
我所有的例子总是经过测试。按原样复制并粘贴最后一个示例,以查看与您的代码的区别。阅读我的评论...