diff options
author | Bruce Momjian <bruce@momjian.us> | 2005-07-20 16:42:32 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2005-07-20 16:42:32 +0000 |
commit | db05f4a7eb6c80c67c25ca9d28be825b99ed3553 (patch) | |
tree | dee67dee9058a0243609c838c6be521143d23f3b /src/backend/utils/adt/selfuncs.c | |
parent | 826604f9e61c233c4229a3eb4d1ee3945691ee1b (diff) | |
download | postgresql-db05f4a7eb6c80c67c25ca9d28be825b99ed3553.tar.gz postgresql-db05f4a7eb6c80c67c25ca9d28be825b99ed3553.zip |
Add 'day' field to INTERVAL so 1 day interval can be distinguished from
24 hours. This is very helpful for daylight savings time:
select '2005-05-03 00:00:00 EST'::timestamp with time zone + '24 hours';
?column?
----------------------
2005-05-04 01:00:00-04
select '2005-05-03 00:00:00 EST'::timestamp with time zone + '1 day';
?column?
----------------------
2005-05-04 01:00:00-04
Michael Glaesemann
Diffstat (limited to 'src/backend/utils/adt/selfuncs.c')
-rw-r--r-- | src/backend/utils/adt/selfuncs.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c index 85dd4196c61..33726945a3e 100644 --- a/src/backend/utils/adt/selfuncs.c +++ b/src/backend/utils/adt/selfuncs.c @@ -15,7 +15,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/selfuncs.c,v 1.184 2005/07/12 16:04:57 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/selfuncs.c,v 1.185 2005/07/20 16:42:30 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -2784,10 +2784,11 @@ convert_timevalue_to_scalar(Datum value, Oid typid) * too accurate, but plenty good enough for our purposes. */ #ifdef HAVE_INT64_TIMESTAMP - return (interval->time + (interval->month * ((365.25 / 12.0) * 86400000000.0))); + return interval->time + interval->day * (double)USECS_PER_DAY + + interval->month * ((365.25 / 12.0) * USECS_PER_DAY); #else - return interval->time + - interval ->month * (365.25 / 12.0 * 24.0 * 60.0 * 60.0); + return interval->time + interval->day * SECS_PER_DAY + + interval->month * ((365.25 / 12.0) * (double)SECS_PER_DAY); #endif } case RELTIMEOID: |