Вычислите различие между 2 датами / времена в Oracle SQL

Существует другая библиотека, названная ExtremeSwank. Эта статья Andrew Arnott, dotnetopenid разработчика, могла бы также помочь Вам" Почему DotNetOpenID как Ваша предпочтительная библиотека C# OpenID ".

80
задан APC 17 August 2011 в 14:30
поделиться

3 ответа

В Oracle можно вычитать даты. Это даст вам разницу в днях. Умножьте на 24, чтобы получить часы и т. Д.

SQL> select oldest - creation from my_table;

Если ваша дата хранится в виде символьных данных, вы должны сначала преобразовать ее в тип даты.

SQL> select 24 * (to_date('2009-07-07 22:00', 'YYYY-MM-DD hh24:mi') 
             - to_date('2009-07-07 19:30', 'YYYY-MM-DD hh24:mi')) diff_hours 
       from dual;

DIFF_HOURS
----------
       2.5

Примечание :

Этот ответ относится к датам представлен типом данных Oracle DATE . Oracle также имеет тип данных TIMESTAMP , который также может представлять дату (со временем). Если вычесть значения TIMESTAMP , вы получите ИНТЕРВАЛ ; для извлечения числовых значений используйте функцию EXTRACT .

111
ответ дан 24 November 2019 в 09:52
поделиться

Вы можете использовать функцию to_timestamp для преобразования дат в отметки времени и выполнения операции вычитания.

Что-то вроде:

SELECT 
TO_TIMESTAMP ('13.10.1990 00:00:00','DD.MM.YYYY HH24:MI:SS')  - 
TO_TIMESTAMP ('01.01.1990:00:10:00','DD.MM.YYYY:HH24:MI:SS')
FROM DUAL
6
ответ дан 24 November 2019 в 09:52
поделиться
$sql="select bsp_bp,user_name,status,
to_char(ins_date,'dd/mm/yyyy hh12:mi:ss AM'),
to_char(pickup_date,'dd/mm/yyyy hh12:mi:ss AM'),
trunc((pickup_date-ins_date)*24*60*60,2),message,status_message 
from valid_bsp_req where id >= '$id'"; 
0
ответ дан 24 November 2019 в 09:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: