2017-10-06 39 views
1

我使用ORACLE計時範圍,如何從這個獲得以下日期時間段:ORACLE透過這兩個日期

SELECT 24 * (TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI') - TO_CHAR(LASTACTIVITY, 'YYYY-MM-DD HH24:MI')) diff_hours 
FROM WA_GA_TBL_USERS 

我得到了錯誤:

ORA-01722: invalid number 

我要的是從兩個日期獲得計數時間範圍。

例子:

SYSDATE = 2017-10-06 17:00 
LASTACTIVITY = 2017-10-06 15:30 

,其結果是:1.5

且下一次我會用PHP驗證它

if($timeduration > 1) //1 means 1 hour 
{ 
} 

回答

0

你已經有日期的表達式,你不需要將它們轉換爲VARCHAR處理:

SELECT 24 * (SYSDATE - LASTACTIVITY) diff_hours FROM WA_GA_TBL_USERS 
+0

接下來,我將用PHP驗證它,我該怎麼做?如果($ diff_hours> 1) –

0
select 
    24 * (to_date('2017-10-06 17:00', 'YYYY-MM-DD hh24:mi') - to_date('2017-10-06 15:30', 'YYYY-MM-DD hh24:mi')) as diff_hours 
from dual; 

enter image description here

通常我使用PHP和MySQL,但我不認爲語義是不同的,我沒有嘗試下面的代碼,但可以爲您的幫助:

<?php 
$c = oci_pconnect(...); 
$s = oci_parse($c, "select 24 * (to_date('2017-10-06 17:00', 'YYYY-MM-DD hh24:mi') - to_date('2017-10-06 15:30', 'YYYY-MM-DD hh24:mi')) as diff_hours from dual"); 
oci_execute($s); 
$res=oci_fetch_array($s); 

if($res >1) 
    //.. 
?> 
+0

你好,請看到我的更新後 –

+0

這是你在做完全不同的要求,你錯過了PHP的標籤和標題是要求不同的問題 – Frank

+0

對不起,我失蹤了 –