我有一个工作要求:
SELECT Drivers.Surname, Drivers.Name, Waybills.StartTime,
TO_CHAR(TO_DATE('1970-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')+(FinishTime - StartTime),'hh24:mi:ss') AS run_time
FROM Waybills JOIN
Drivers
ON Drivers.Id = Waybills.DriverId
WHERE Waybills.StartTime > SYSDATE-7 ORDER BY Name ASC;
但我不能将sum(to \u char(to \u date('1970-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')+(finishtime-starttime),'hh24:mi:ss'))添加为运行时间
3条答案
按热度按时间2wnc66cl1#
我想你应该对差值求和,然后加上一个日期并转换成一个字符串:
根据你的评论,你的专栏是
timestamp
不是的date
s。您只需要第二个精度,因此您不妨转换为日期:3npbholx2#
你正在转变
date
至char
加上timestamp
这是错误的。你必须这样做:
xlpyo6sf3#
您可以尝试以下解决方法:
trunc(mod(end\u date-start\u date,1)*24,1)*60)表示分钟,mod(mod(end\u date-start\u date,1)*24,1)*60,1)*60表示秒
剩下的你可以试试这些:https://docs.oracle.com/cd/b19306_01/server.102/b14200/functions230.htm#i1002084
得到结果后,您可以轻松地将其 Package 为字符串格式[例如,to_char(x,'yyyy-mm-dd')]
下面是更多的例子:
在oracle sql中计算两个日期/时间之间的差异