Oracle数据库中对时间进行减、加操作,计算累计时间

伊洛长河 2013-09-23 09:34:38

数据表 GYH,字段 YHM 用户名,RQ登录日期(DATE型),LOGIN登录时间(VARCHAR型),OUT退出时间(VARCHAR型)。
问题:用select 语句 选择出 用户名(as 用户名) 和 对应的在线总时间
(在线总时间 ==SUM(OUT - LOGIN),其中 登录时间(LOGIN) 和 退出时间(OUT)是字符型数据,不能直接用时间减函数DATEDIFF。)

希望热心的朋友能帮忙给出完整 select 语句,谢谢!
最后得到的 用户在线时长,格式表示为: 日/时/分
...全文
264 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
2个字段 都转换成时间不就可以咯 纯手敲的 不知道会报错不 可能round(mi/86400,0)这3个位置 都要用to_char()转换下
select yhm "用户名", 
       round(mi/86400,0)||'/'||round(mod(mi,86400)/60,0)||'/'||mod(mi,1440) "在线时长"
from 
(
select yhm,
       SUM((to_date(OUT,'hh24:mi;ss') -  to_date(LOGIN,'hh24:mi;ss'))*24*60*60) mi
from gyh
group by yhm
)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧