我正在使用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 :(得分:0)
您已经有日期表达式,您无需将它们转换为varchars:
SELECT 24 * (SYSDATE - LASTACTIVITY) diff_hours FROM WA_GA_TBL_USERS
答案 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;
通常我使用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)
//..
?>