我有一个食品餐饮应用程序,应该计算订单时间是否已超过15分钟。我有一个想法,我应该计算当前时间和订单时间之间的时差,但我不知道该怎么做。 有没有人有一个简单的解决方案来解决这个问题?
答案 0 :(得分:0)
在Oracle中减去两个日期值会导致DAYS的数量。因此,你必须做一些数学计算才能获得数小时(或分钟)。这是一个例子:
SQL> col diff_days format 90D00000
SQL> col diff_hours format 90D00000
SQL> col diff_minutes format 90D00000
SQL>
SQL> with test as (select to_date('29.12.2017 16:05', 'dd.mm.yyyy hh24:mi') d_order,
2 to_date('29.12.2017 16:39', 'dd.mm.yyyy hh24:mi') d_now
3 from dual)
4 select
5 d_now - d_order diff_days,
6 (d_now - d_order) * 24 diff_hours,
7 (d_now - d_Order) * (24 * 60) diff_minutes
8 from test;
DIFF_DAYS DIFF_HOURS DIFF_MINUTES
--------- ---------- ------------
0,02361 0,56667 34,00000
SQL>
你也是这样做的:D_NOW是SYSDATE,而D_ORDER是存储在(n ORDERS)表中的值。