2013-12-10 38 views
2

我正在查詢查找兩個時間字段之間的差距。Oracle查詢時間差,以秒爲單位

A和表B都在COL3包含時間值。 8:13:54COL3是Char字段。

B也具有相同的字段。我想查詢以下條件。

A.COL1 = B.COL1 and 
A.COL2 = B.COL2 and 
(COL3 in a should equal to +/- 120 secs of COL B). 

我試圖用TO_DATE,但它不工作了。我怎樣才能做到這一點?

這適用於我。謝謝。

SELECT A. ,B. FROM A,B WHERE A.COL1 = B.COL1 AND A.COL2 = B.COL2 AND(TO_DATE(B.COL3,「HH:MI:SS ')=(TO_DATE(B.COL3,'hh:mi:ss')+(120 /(24 * 60 * 60))) 或TO_DATE(B.COL3,'hh:mi:ss')=(TO_DATE (B.COL3, 'HH:MI:SS') - (120 /(24 * 60 * 60))))

+2

'col3'的數據類型是什麼?在Oracle中,「時間」不是有效的數據類型。你有'間隔'嗎? '日期'? (有希望)一個'varchar2'格式? –

回答

6

像這樣:

select (laterDate - earlierDate) * 24 * 60 * 60 seconds 
from etc 

在oracle中,日期是數字。每個整數增量代表一個日曆日。

+3

我不同意。在Oracle中,日期類型爲DATE。日期(DATE類型)之間的差異表示爲天數(NUMBER數據類型)。因此,諸如「to_date('01/01/2013','MM/DD/YYYY') - to_date('12/31/2012','MM/DD/YYYY')」將返回數字1,意思是差異是1天。 –

+0

是的你是對的Mark.The下面的查詢對我有用SELECT A.,B. FROM A,B WHERE A.COL1 = B.COL1 AND A.COL2 = B.COL2 AND(TO_DATE(B.COL3,'hh: mi:ss')=(TO_DATE(B.COL3,'hh:mi:ss')+(120 /(24 * 60 * 60)))或TO_DATE(B.COL3,'hh:mi:ss')= (TO_DATE(B.COL3,'hh:mi:ss') - (120 /(24 * 60 * 60)))) – user3080572

相關問題