Quick Search:
 
 Oracle PL/SQL: Date and Time Calculations: Get seconds between dates Jump to:  
Category: >> Oracle PL/SQL >> Date and Time Calculations: Get seconds between dates  

<< lastnext >>

Snippet Name: Date and Time Calculations: Get seconds between dates

Description: Calculates the number of seconds between two given date-time values.

Also see:
» BR2NL Function: Opposite of NL2BR
» A JavaScript implementation of the fam...
» Call a PHP function when clicking on a...
» FUNCTIONS: Deterministic
» FUNCTIONS: Nested Functions
» FUNCTIONS: IF statement
» FUNCTIONS: date/time
» FUNCTIONS: Sample functions
» FUNCTIONS: drop
» FUNCTIONS: Recompile
» FUNCTIONS: DEBUG mode
» FUNCTIONS: IN OUT parameter
» FUNCTIONS: with output parameters
» FUNCTIONS: with parameters
» FUNCTIONS: without parameters
» FUNCTIONS: Create function
» FUNCTIONS: special restrictions
» FUNCTIONS: System Privileges
» Recursive fopen() function
» INDEXES: ENABLE (function-based index)
» INDEXES: DISABLE (function-based index)
» PACKAGES: one function
» INDEXES: Function-Based Index
» IN Function
» Built-In Functions: CASE
» Built-In Functions: DECODE
» Alternate Title Case function
» SELECT: Using Functions
» UPDATE: Update a partitioned table
» UPDATE: Update based on a record

Comment: (none)

Language: PL/SQL
Highlight Mode: PLSQL
Last Modified: March 03rd, 2009

CREATE OR REPLACE FUNCTION time_diff (
DATE_1 IN DATE, DATE_2 IN DATE) RETURN NUMBER IS
 
NDATE_1   NUMBER;
NDATE_2   NUMBER;
NSECOND_1 NUMBER(5,0);
NSECOND_2 NUMBER(5,0);
 
BEGIN
  -- Get Julian date number from first date (DATE_1)
  NDATE_1 := TO_NUMBER(TO_CHAR(DATE_1, 'J'));
 
  -- Get Julian date number from second date (DATE_2)
  NDATE_2 := TO_NUMBER(TO_CHAR(DATE_2, 'J'));
 
  -- Get seconds since midnight from first date (DATE_1)
  NSECOND_1 := TO_NUMBER(TO_CHAR(DATE_1, 'SSSSS'));
 
  -- Get seconds since midnight from second date (DATE_2)
  NSECOND_2 := TO_NUMBER(TO_CHAR(DATE_2, 'SSSSS'));
 
  RETURN (((NDATE_2 - NDATE_1) * 86400)+(NSECOND_2 - NSECOND_1));
END time_diff;
/
 
 
// Another method, possibly much faster:
 
SELECT (TO_DATE('01-JAN-16')-TO_DATE('12-DEC-15'))*86400 FROM DUAL;


 
   Home |    Search |    Code Library |    Sponsors |    Privacy |    Terms of Use |    Contact Us © 2003 - 2024 psoug.org