aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/timestamp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/adt/timestamp.c')
-rw-r--r--src/backend/utils/adt/timestamp.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c
index feaec85b69e..e2f2b2d35b4 100644
--- a/src/backend/utils/adt/timestamp.c
+++ b/src/backend/utils/adt/timestamp.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.81 2003/03/20 06:02:59 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.82 2003/04/04 04:50:44 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -728,12 +728,7 @@ now(PG_FUNCTION_ARGS)
sec = GetCurrentTransactionStartTimeUsec(&usec);
-#ifdef HAVE_INT64_TIMESTAMP
- result = (((sec - ((date2j(2000, 1, 1) - date2j(1970, 1, 1)) * 86400))
- * INT64CONST(1000000)) + usec);
-#else
- result = (sec + (usec * 1.0e-6) - ((date2j(2000, 1, 1) - date2j(1970, 1, 1)) * 86400));
-#endif
+ result = AbsoluteTimeUsecToTimestampTz(sec, usec);
PG_RETURN_TIMESTAMPTZ(result);
}
@@ -800,7 +795,7 @@ timestamp2tm(Timestamp dt, int *tzp, struct tm * tm, fsec_t *fsec, char **tzn)
struct tm *tx;
#endif
- date0 = date2j(2000, 1, 1);
+ date0 = POSTGRES_EPOCH_JDATE;
/*
* If HasCTZSet is true then we have a brute force time zone
@@ -871,9 +866,9 @@ timestamp2tm(Timestamp dt, int *tzp, struct tm * tm, fsec_t *fsec, char **tzn)
{
#ifdef HAVE_INT64_TIMESTAMP
utime = ((dt / INT64CONST(1000000))
- + ((date0 - date2j(1970, 1, 1)) * INT64CONST(86400)));
+ + ((date0 - UNIX_EPOCH_JDATE) * INT64CONST(86400)));
#else
- utime = (dt + ((date0 - date2j(1970, 1, 1)) * 86400));
+ utime = (dt + ((date0 - UNIX_EPOCH_JDATE) * 86400));
#endif
#if defined(HAVE_TM_ZONE) || defined(HAVE_INT_TIMEZONE)
@@ -960,7 +955,7 @@ tm2timestamp(struct tm * tm, fsec_t fsec, int *tzp, Timestamp *result)
if (!IS_VALID_JULIAN(tm->tm_year, tm->tm_mon, tm->tm_mday))
return -1;
- date = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) - date2j(2000, 1, 1);
+ date = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) - POSTGRES_EPOCH_JDATE;
time = time2t(tm->tm_hour, tm->tm_min, tm->tm_sec, fsec);
#ifdef HAVE_INT64_TIMESTAMP
*result = ((date * INT64CONST(86400000000)) + time);
@@ -2675,7 +2670,7 @@ isoweek2date(int woy, int *year, int *mon, int *mday)
day4 = date2j(*year, 1, 4);
/* day0 == offset to first day of week (Monday) */
- day0 = (j2day(day4 - 1) % 7);
+ day0 = j2day(day4 - 1);
dayn = ((woy - 1) * 7) + (day4 - day0);
@@ -2701,7 +2696,7 @@ date2isoweek(int year, int mon, int mday)
day4 = date2j(year, 1, 4);
/* day0 == offset to first day of week (Monday) */
- day0 = (j2day(day4 - 1) % 7);
+ day0 = j2day(day4 - 1);
/*
* We need the first week containing a Thursday, otherwise this day
@@ -2709,10 +2704,10 @@ date2isoweek(int year, int mon, int mday)
*/
if (dayn < (day4 - day0))
{
- day4 = date2j((year - 1), 1, 4);
+ day4 = date2j(year - 1, 1, 4);
/* day0 == offset to first day of week (Monday) */
- day0 = (j2day(day4 - 1) % 7);
+ day0 = j2day(day4 - 1);
}
result = (((dayn - (day4 - day0)) / 7) + 1);
@@ -2723,10 +2718,10 @@ date2isoweek(int year, int mon, int mday)
*/
if (result >= 53)
{
- day4 = date2j((year + 1), 1, 4);
+ day4 = date2j(year + 1, 1, 4);
/* day0 == offset to first day of week (Monday) */
- day0 = (j2day(day4 - 1) % 7);
+ day0 = j2day(day4 - 1);
if (dayn >= (day4 - day0))
result = (((dayn - (day4 - day0)) / 7) + 1);