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

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

希望热心的百度知友能帮忙给出完整 select 语句,谢谢!
不考虑 在线时间段 跨越0点
展开
 我来答
dragon0732
推荐于2021-01-20 · TA获得超过197个赞
知道答主
回答量:70
采纳率:0%
帮助的人:44.4万
展开全部
select yhm,sum(to_date(out,'yyyy-MM-dd HH24:mi:ss') -to_date(login,'yyyy-MM-dd HH24:mi:ss')) from gyh
group by yhm;
---计算出在线天数。如果login和out仅仅记录时间,不含日期,则自己做个转化即可。
---关于要显示为:日/时/分,为了简单,将sum(....)设定为A,则表达式如下
select yhm,round(A)||'日'||(round(A*24)-round(A)*24)||'时'||round(A*24*60-round(A*24*60)-round(A*24)*60)||'分' from gyh group by yhm;
追问
round(A)||'日'||(round(A*24-round(A)*24))||'时'||round(A*24*60-round(A)*24*60-round(A*24-round(A)*24)*60)||'分'
这样出结果了,问题解决,谢谢
追答
别客气,昨天没有测试环境,因此担心有问题。问题解决了就好。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太平岁年丰9
2013-09-23 · TA获得超过1230个赞
知道小有建树答主
回答量:1017
采纳率:100%
帮助的人:1076万
展开全部
你能确定login和out是同一天的时间吗,如果是同一天:
select yhm “用户名”,sum(to_date(out,'hh24:mi:ss')-to_date(login,'hh24:mi:ss')) from gyh group by yhm
说明一下,计算结果是天,换算成秒需要*24*60*60
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式