diff options
author | Bruce Momjian <bruce@momjian.us> | 2005-07-21 18:06:13 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2005-07-21 18:06:13 +0000 |
commit | e6b72d6af6fbe94e90019ca374199472bb1958a4 (patch) | |
tree | 20db8e92de3685ef949f45b0fff0ee681d99e26a /src/backend/utils/adt/timestamp.c | |
parent | a0407f508a8d627dcf85557f1ada476117627875 (diff) | |
download | postgresql-e6b72d6af6fbe94e90019ca374199472bb1958a4.tar.gz postgresql-e6b72d6af6fbe94e90019ca374199472bb1958a4.zip |
Update DAYS_PER_MONTH comment.
Add SECS_PER_YEAR and MINS_PER_HOUR macros.
Diffstat (limited to 'src/backend/utils/adt/timestamp.c')
-rw-r--r-- | src/backend/utils/adt/timestamp.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index 0ef505ed907..09002d9f1ea 100644 --- a/src/backend/utils/adt/timestamp.c +++ b/src/backend/utils/adt/timestamp.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.137 2005/07/21 05:18:26 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.138 2005/07/21 18:06:12 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -748,7 +748,6 @@ AdjustIntervalForTypmod(Interval *interval, int32 typmod) interval->time -= hour * USECS_PER_HOUR; interval->time = (interval->time / USECS_PER_MINUTE) * USECS_PER_MINUTE; - #else TMODULO(interval->time, hour, (double)SECS_PER_HOUR); interval->time = ((int)(interval->time / SECS_PER_MINUTE)) * (double)SECS_PER_MINUTE; @@ -1212,7 +1211,7 @@ tm2interval(struct pg_tm *tm, fsec_t fsec, Interval *span) tm->tm_min) * INT64CONST(60)) + tm->tm_sec) * USECS_PER_SEC) + fsec; #else - span->time = (((tm->tm_hour * (double)SECS_PER_MINUTE) + + span->time = (((tm->tm_hour * (double)MINS_PER_HOUR) + tm->tm_min) * (double)SECS_PER_MINUTE) + tm->tm_sec; span->time = JROUND(span->time + fsec); @@ -1225,14 +1224,14 @@ tm2interval(struct pg_tm *tm, fsec_t fsec, Interval *span) static int64 time2t(const int hour, const int min, const int sec, const fsec_t fsec) { - return (((((hour * SECS_PER_MINUTE) + min) * SECS_PER_MINUTE) + sec) * USECS_PER_SEC) + fsec; + return (((((hour * MINS_PER_HOUR) + min) * SECS_PER_MINUTE) + sec) * USECS_PER_SEC) + fsec; } /* time2t() */ #else static double time2t(const int hour, const int min, const int sec, const fsec_t fsec) { - return (((hour * SECS_PER_MINUTE) + min) * SECS_PER_MINUTE) + sec + fsec; + return (((hour * MINS_PER_HOUR) + min) * SECS_PER_MINUTE) + sec + fsec; } /* time2t() */ #endif @@ -2475,7 +2474,7 @@ timestamp_age(PG_FUNCTION_ARGS) while (tm->tm_min < 0) { - tm->tm_min += SECS_PER_MINUTE; + tm->tm_min += MINS_PER_HOUR; tm->tm_hour--; } @@ -2589,7 +2588,7 @@ timestamptz_age(PG_FUNCTION_ARGS) while (tm->tm_min < 0) { - tm->tm_min += SECS_PER_MINUTE; + tm->tm_min += MINS_PER_HOUR; tm->tm_hour--; } @@ -3492,10 +3491,10 @@ timestamp_part(PG_FUNCTION_ARGS) case DTK_JULIAN: result = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday); #ifdef HAVE_INT64_TIMESTAMP - result += ((((tm->tm_hour * SECS_PER_MINUTE) + tm->tm_min) * SECS_PER_MINUTE) + + result += ((((tm->tm_hour * MINS_PER_HOUR) + tm->tm_min) * SECS_PER_MINUTE) + tm->tm_sec + (fsec / 1000000.0)) / (double)SECS_PER_DAY; #else - result += ((((tm->tm_hour * SECS_PER_MINUTE) + tm->tm_min) * SECS_PER_MINUTE) + + result += ((((tm->tm_hour * MINS_PER_HOUR) + tm->tm_min) * SECS_PER_MINUTE) + tm->tm_sec + fsec) / (double)SECS_PER_DAY; #endif break; @@ -3628,8 +3627,8 @@ timestamptz_part(PG_FUNCTION_ARGS) case DTK_TZ_MINUTE: result = -tz; - result /= SECS_PER_MINUTE; - FMODULO(result, dummy, (double)SECS_PER_MINUTE); + result /= MINS_PER_HOUR; + FMODULO(result, dummy, (double)MINS_PER_HOUR); break; case DTK_TZ_HOUR: @@ -3720,10 +3719,10 @@ timestamptz_part(PG_FUNCTION_ARGS) case DTK_JULIAN: result = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday); #ifdef HAVE_INT64_TIMESTAMP - result += ((((tm->tm_hour * SECS_PER_MINUTE) + tm->tm_min) * SECS_PER_MINUTE) + + result += ((((tm->tm_hour * MINS_PER_HOUR) + tm->tm_min) * SECS_PER_MINUTE) + tm->tm_sec + (fsec / 1000000.0)) / (double)SECS_PER_DAY; #else - result += ((((tm->tm_hour * SECS_PER_MINUTE) + tm->tm_min) * SECS_PER_MINUTE) + + result += ((((tm->tm_hour * MINS_PER_HOUR) + tm->tm_min) * SECS_PER_MINUTE) + tm->tm_sec + fsec) / (double)SECS_PER_DAY; #endif break; |