Sql Interval关键字在Oracle中是如何工作的?

Sql Interval关键字在Oracle中是如何工作的?,sql,oracle,Sql,Oracle,我有两个问题: SELECT 300*interval '1' HOUR FROM DUAL -- 0 5:0:0.0 (Output) SELECT 300* interval '1' minute FROM DUAL -- 12 12:0:0.0(Output) 我无法了解interval关键字如何工作以及生成的输出格式是什么?最好始终了解乘法或任何其他数学运算的所有参与者,以便理解它 '1'小时 select interval '1' HOUR from dual; 将返回

我有两个问题:

SELECT 300*interval '1' HOUR FROM DUAL  --   0 5:0:0.0 (Output)

SELECT 300* interval '1' minute FROM DUAL -- 12 12:0:0.0(Output) 

我无法了解interval关键字如何工作以及生成的输出格式是什么?

最好始终了解乘法或任何其他数学运算的所有参与者,以便理解它

'1'小时

select interval '1' HOUR from dual; 
将返回1小时,然后将其与数字300相乘,您将得到:

+000000012 12:00:00.000000000
因为(300*1)/24=12.5。或者12天12小时

'1'分钟

同样的事情也发生在你的结果是5小时的分钟里。此查询:

select interval '1' minute FROM DUAL
将返回1分钟,然后将其与数字300相乘,以获得以下结果:

+000000000 05:00:00.000000000
因为(300*1)/60=5或5小时。

p.S.

根据您使用的工具,您可以看到以下结果:

+12:00:00.000000

+00 05:00:00.000000

您的第一个查询:

--300 * 1 hour => 12 days 12 hours which is +000000012 12:00:00.000000000
SELECT 300 * ( INTERVAL '1' HOUR ) FROM DUAL; 

-- 300 * 1 minute => 300 Minute which is 300 / 60 = 5 Hours =>  +000000000 05:00:00.000000000
SELECT 300 * (interval '1' minute) FROM DUAL

希望能有所帮助

我相信您的问题中混用了“(输出)”结果。先生,我无法获取+0000000 12:00:00.000000000请共享输出格式的文档链接,我无法获取此outputHi@radha的含义,我将非常乐意帮助你更多…请告诉我你得到了什么?在你的问题中,你说你不理解这是如何工作的,你写的结果是
12:0:0.0(输出)
?Hi@radha你说“请共享输出格式的文档链接”是什么意思?select语句的每个步骤都在我的回答中进行了解释。请详细说明您的问题所在。我无法理解+0000000 12:00:00.000000000中前导零的含义,以及如何解释12:00:00.000000000,是12小时0分0秒吗?