【发布时间】:2020-08-07 12:15:07
【问题描述】:
首先我很抱歉英语很差,但我会尽量让人们理解。
我正在尝试创建一个 Oracle 数据库 SQL 查询,它减去两个现有列的日期时间值,我使用下面显示的指令管理了如何执行此操作,但我创建的列 TEMPO 以 NUMBER 格式返回。
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 格式转换为 TIME 作为 'hh:mm:ss',如果某些结果经过 24 小时,它会像 32:01:20 一样继续添加(就像 [hh]:mm:ss Excel 格式)。
我尝试了一些类似下面的指令,但它返回 ORA-00932 错误数据类型不一致,预期 TIME 并返回 DATE 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
无论如何,列 TEMPO 格式为 TIME 非常重要,因为我将使用 sql 查询作为 PowerBi Direct Query 的指令,并且我无法导入数据库以与 PowerQuery 一起使用,因为它是太大的数据.
谢谢大家!
【问题讨论】:
-
能否提供M.DTFIMSEPARACAO、M.DTINICIOOS列的样本数据?
标签: sql oracle datetime formatting julian-date