首先我很抱歉英语不好,但我会尽量让人理解的。
我试图做一个oracle数据库sql查询,它减去两个现有列的datetime值,我设法使用下面所示的指令来做,但是我创建的列速度返回数字格式。
SELECT M.NUMOS, M.CODFUNCOS, M.DTINICIOOS, M.DTFIMSEPARACAO,
M.DTFIMSEPARACAO - M.DTINICIOOS AS TEMPO
FROM PCMOVENDPEND M
WHERE DTFIMSEPARACAO IS NOT NULL
AND DATA >= SYSDATE-1
输出是在它去。
输出
我需要将列tempo格式转换为'hh:mm:ss'格式的时间,如果一些结果经过24小时,它会像32:01:20一样添加(就像[hh:mm:ss excel格式一样)。
我尝试了一些类似下面的指令的操作,但是它返回ora-00932错误不一致的数据类型、预期时间和返回日期julian(我不知道它是否是准确的错误描述,我的dbx是葡萄牙语的),不幸的是,如果有帮助的话,我不能对根表做任何更改。
SELECT M.NUMOS, M.CODFUNCOS, M.DTINICIOOS, M.DTFIMSEPARACAO,
CAST(M.DTFIMSEPARACAO - M.DTINICIOOS AS TIME) AS TEMPO
FROM PCMOVENDPEND M
WHERE DTFIMSEPARACAO IS NOT NULL
AND DATA >= SYSDATE-1
无论如何,列速度格式是time是非常重要的,因为我将使用sql查询作为powerbi direct query的指令,并且我无法导入数据库以使用powerquery,因为它的数据太大。
谢谢大家!
3条答案
按热度按时间v9tzhpje1#
函数使它更漂亮。它返回的天数格式为
dd:hh:mi:ss
.例子:
如果没有它,您将得到十进制数:
有了它,你就能得到你想要的:
是的,这样的(或类似的)代码可以直接在sql中使用,但它会使
SELECT
声明有点难看,很难读。你的问题就是
看看是否有用。
xzv2uavs2#
在littlefoots的帮助下,我设法将列转换为所需的格式,如下所示:
但我无法建立powerbi连接,输出是details:“当前不支持此本机数据库查询。”
总之,我学到了很多。
weylhg0b3#
可以在减法之前将日期转换为时间戳。减法的结果是表示为“days hh24:mi:ss.fff”的间隔。如有必要,可以使用提取功能拉出各个组件。这样,您既没有难看的查询,也不需要创建函数。