Обсуждение: Date difference in seconds
Hi ,
Please consider the following schema and the query given below and
let me know how to get the results I want.
CREATE TABLE temp (
id INTEGER NOT NULL,
start_time TIMESTAMP,
end_time TIMESTAMP,
PRIMARY KEY (id)
);
Now I want the difference between start time and end time in seconds.
Select date_part('seconds',start_time - end_time) from temp; gives
me only the difference between the seconds value in both timestamps. It
ignores all the days, hrs, minutes etc.
My problem is that I want the actual difference between the two timestamps
expressed in seconds.
Please advice me how to write the SQL Query.
With Regards,
Raghunath T
Senior Software Engg,
MindTree Consulting Private Ltd,
Santa Clara, CA, USA
"Raghunath T" <raghunatht@mindtree.com> writes:
> Now I want the difference between start time and end time in seconds.
> Select date_part('seconds',start_time - end_time) from temp; gives
> me only the difference between the seconds value in both timestamps. It
> ignores all the days, hrs, minutes etc.
Try "date_part('epoch',start_time - end_time)". See
http://www.postgresql.org/devel-corner/docs/postgres/functions-datetime.html
regards, tom lane
On Mon, 19 Feb 2001, Raghunath T wrote:
> Hi ,
> Please consider the following schema and the query given below and
> let me know how to get the results I want.
>
> CREATE TABLE temp (
> id INTEGER NOT NULL,
> start_time TIMESTAMP,
> end_time TIMESTAMP,
> PRIMARY KEY (id)
> );
>
> Now I want the difference between start time and end time in seconds.
> Select date_part('seconds',start_time - end_time) from temp; gives
> me only the difference between the seconds value in both timestamps. It
> ignores all the days, hrs, minutes etc.
>
> My problem is that I want the actual difference between the two timestamps
> expressed in seconds.
You should be able to get that with date_part('epoch', start_time-end_time)
(or more likely end_time-start_time unless you want a negative number)