Oracle - Beste SELECT verklaring vir die kry van die verskil in minute tussen twee Datum tyd kolomme?
Vra
Ek is 'n poging om 'n nogal moeilik verslagdoening versoek van 'n kliënt te voldoen, en wat ek nodig het om weg te vind om die verskil tussen twee Datum tyd kolomme in minute te kry. Ek het probeer om TRUNC en ronde gebruik met verskeie formate en kan nie lyk om te kom met 'n kombinasie wat sin maak. Is daar 'n elegante manier om dit te doen? Indien nie, is daar enige manier om dit te doen?
Oplossing
SELECT date1 - date2
FROM some_table
terug 'n verskil in dae. Vermenigvuldig met 24 om 'n verskil te kry in ure en 24 * 60 tot minute te kry. So
SELECT (date1 - date2) * 24 * 60 difference_in_minutes
FROM some_table
moet wees wat jy soek vir
Ander wenke
By verstek, orakel datum aftrek terugkeer gevolg in # dae.
So net vermenigvuldig met 24 te kry # uur, en weer met 60 vir # minute.
Voorbeeld:
select
round((second_date - first_date) * (60 * 24),2) as time_in_minutes
from
(
select
to_date('01/01/2008 01:30:00 PM','mm/dd/yyyy hh:mi:ss am') as first_date
,to_date('01/06/2008 01:35:00 PM','mm/dd/yyyy HH:MI:SS AM') as second_date
from
dual
) test_data
http://asktom.oracle.com/tkyte/Misc/DateDiff.html - skakel dood as van 2012/01/30
Dit lyk soos hierdie is die hulpbron:
http://asktom.oracle.com/pls/asktom /ASKTOM.download_file?p_file=6551242712657900129