aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/selfuncs.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2005-07-20 16:42:32 +0000
committerBruce Momjian <bruce@momjian.us>2005-07-20 16:42:32 +0000
commitdb05f4a7eb6c80c67c25ca9d28be825b99ed3553 (patch)
treedee67dee9058a0243609c838c6be521143d23f3b /src/backend/utils/adt/selfuncs.c
parent826604f9e61c233c4229a3eb4d1ee3945691ee1b (diff)
downloadpostgresql-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.c9
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: