PostgreSQL Source Code  git master
timestamp.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Interval
 

Macros

#define MAX_TIMESTAMP_PRECISION   6
 
#define MAX_INTERVAL_PRECISION   6
 
#define TS_PREC_INV   1000000.0
 
#define TSROUND(j)   (rint(((double) (j)) * TS_PREC_INV) / TS_PREC_INV)
 
#define DAYS_PER_YEAR   365.25 /* assumes leap year every four years */
 
#define MONTHS_PER_YEAR   12
 
#define DAYS_PER_MONTH   30 /* assumes exactly 30 days per month */
 
#define HOURS_PER_DAY   24 /* assume no daylight savings time changes */
 
#define SECS_PER_YEAR   (36525 * 864) /* avoid floating-point computation */
 
#define SECS_PER_DAY   86400
 
#define SECS_PER_HOUR   3600
 
#define SECS_PER_MINUTE   60
 
#define MINS_PER_HOUR   60
 
#define USECS_PER_DAY   INT64CONST(86400000000)
 
#define USECS_PER_HOUR   INT64CONST(3600000000)
 
#define USECS_PER_MINUTE   INT64CONST(60000000)
 
#define USECS_PER_SEC   INT64CONST(1000000)
 
#define MAX_TZDISP_HOUR   15 /* maximum allowed hour part */
 
#define TZDISP_LIMIT   ((MAX_TZDISP_HOUR + 1) * SECS_PER_HOUR)
 
#define DT_NOBEGIN   PG_INT64_MIN
 
#define DT_NOEND   PG_INT64_MAX
 
#define TIMESTAMP_NOBEGIN(j)    do {(j) = DT_NOBEGIN;} while (0)
 
#define TIMESTAMP_IS_NOBEGIN(j)   ((j) == DT_NOBEGIN)
 
#define TIMESTAMP_NOEND(j)    do {(j) = DT_NOEND;} while (0)
 
#define TIMESTAMP_IS_NOEND(j)   ((j) == DT_NOEND)
 
#define TIMESTAMP_NOT_FINITE(j)   (TIMESTAMP_IS_NOBEGIN(j) || TIMESTAMP_IS_NOEND(j))
 
#define JULIAN_MINYEAR   (-4713)
 
#define JULIAN_MINMONTH   (11)
 
#define JULIAN_MINDAY   (24)
 
#define JULIAN_MAXYEAR   (5874898)
 
#define JULIAN_MAXMONTH   (6)
 
#define JULIAN_MAXDAY   (3)
 
#define IS_VALID_JULIAN(y, m, d)
 
#define UNIX_EPOCH_JDATE   2440588 /* == date2j(1970, 1, 1) */
 
#define POSTGRES_EPOCH_JDATE   2451545 /* == date2j(2000, 1, 1) */
 
#define DATETIME_MIN_JULIAN   (0)
 
#define DATE_END_JULIAN   (2147483494) /* == date2j(JULIAN_MAXYEAR, 1, 1) */
 
#define TIMESTAMP_END_JULIAN   (109203528) /* == date2j(294277, 1, 1) */
 
#define MIN_TIMESTAMP   INT64CONST(-211813488000000000)
 
#define END_TIMESTAMP   INT64CONST(9223371331200000000)
 
#define IS_VALID_DATE(d)
 
#define IS_VALID_TIMESTAMP(t)   (MIN_TIMESTAMP <= (t) && (t) < END_TIMESTAMP)
 

Typedefs

typedef int64 Timestamp
 
typedef int64 TimestampTz
 
typedef int64 TimeOffset
 
typedef int32 fsec_t
 

Macro Definition Documentation

◆ DATE_END_JULIAN

#define DATE_END_JULIAN   (2147483494) /* == date2j(JULIAN_MAXYEAR, 1, 1) */

Definition at line 180 of file timestamp.h.

◆ DATETIME_MIN_JULIAN

#define DATETIME_MIN_JULIAN   (0)

Definition at line 179 of file timestamp.h.

◆ DAYS_PER_MONTH

#define DAYS_PER_MONTH   30 /* assumes exactly 30 days per month */

Definition at line 77 of file timestamp.h.

◆ DAYS_PER_YEAR

#define DAYS_PER_YEAR   365.25 /* assumes leap year every four years */

Definition at line 68 of file timestamp.h.

◆ DT_NOBEGIN

#define DT_NOBEGIN   PG_INT64_MIN

Definition at line 109 of file timestamp.h.

◆ DT_NOEND

#define DT_NOEND   PG_INT64_MAX

Definition at line 110 of file timestamp.h.

◆ END_TIMESTAMP

#define END_TIMESTAMP   INT64CONST(9223371331200000000)

Definition at line 186 of file timestamp.h.

◆ HOURS_PER_DAY

#define HOURS_PER_DAY   24 /* assume no daylight savings time changes */

Definition at line 78 of file timestamp.h.

◆ IS_VALID_DATE

#define IS_VALID_DATE (   d)
Value:
#define DATETIME_MIN_JULIAN
Definition: timestamp.h:179
#define DATE_END_JULIAN
Definition: timestamp.h:180
#define POSTGRES_EPOCH_JDATE
Definition: timestamp.h:163

Definition at line 190 of file timestamp.h.

◆ IS_VALID_JULIAN

#define IS_VALID_JULIAN (   y,
  m,
 
)
Value:
(((y) > JULIAN_MINYEAR || \
((y) == JULIAN_MINYEAR && ((m) >= JULIAN_MINMONTH))) && \
((y) < JULIAN_MAXYEAR || \
((y) == JULIAN_MAXYEAR && ((m) < JULIAN_MAXMONTH))))
#define JULIAN_MAXMONTH
Definition: timestamp.h:152
#define JULIAN_MAXYEAR
Definition: timestamp.h:151
#define JULIAN_MINMONTH
Definition: timestamp.h:149
#define JULIAN_MINYEAR
Definition: timestamp.h:148
int y
Definition: isn.c:72

Definition at line 155 of file timestamp.h.

◆ IS_VALID_TIMESTAMP

#define IS_VALID_TIMESTAMP (   t)    (MIN_TIMESTAMP <= (t) && (t) < END_TIMESTAMP)

Definition at line 195 of file timestamp.h.

◆ JULIAN_MAXDAY

#define JULIAN_MAXDAY   (3)

Definition at line 153 of file timestamp.h.

◆ JULIAN_MAXMONTH

#define JULIAN_MAXMONTH   (6)

Definition at line 152 of file timestamp.h.

◆ JULIAN_MAXYEAR

#define JULIAN_MAXYEAR   (5874898)

Definition at line 151 of file timestamp.h.

◆ JULIAN_MINDAY

#define JULIAN_MINDAY   (24)

Definition at line 150 of file timestamp.h.

◆ JULIAN_MINMONTH

#define JULIAN_MINMONTH   (11)

Definition at line 149 of file timestamp.h.

◆ JULIAN_MINYEAR

#define JULIAN_MINYEAR   (-4713)

Definition at line 148 of file timestamp.h.

◆ MAX_INTERVAL_PRECISION

#define MAX_INTERVAL_PRECISION   6

Definition at line 54 of file timestamp.h.

◆ MAX_TIMESTAMP_PRECISION

#define MAX_TIMESTAMP_PRECISION   6

Definition at line 53 of file timestamp.h.

◆ MAX_TZDISP_HOUR

#define MAX_TZDISP_HOUR   15 /* maximum allowed hour part */

Definition at line 103 of file timestamp.h.

◆ MIN_TIMESTAMP

#define MIN_TIMESTAMP   INT64CONST(-211813488000000000)

Definition at line 184 of file timestamp.h.

◆ MINS_PER_HOUR

#define MINS_PER_HOUR   60

Definition at line 89 of file timestamp.h.

◆ MONTHS_PER_YEAR

#define MONTHS_PER_YEAR   12

Definition at line 69 of file timestamp.h.

◆ POSTGRES_EPOCH_JDATE

#define POSTGRES_EPOCH_JDATE   2451545 /* == date2j(2000, 1, 1) */

Definition at line 163 of file timestamp.h.

◆ SECS_PER_DAY

#define SECS_PER_DAY   86400

Definition at line 86 of file timestamp.h.

◆ SECS_PER_HOUR

#define SECS_PER_HOUR   3600

Definition at line 87 of file timestamp.h.

◆ SECS_PER_MINUTE

#define SECS_PER_MINUTE   60

Definition at line 88 of file timestamp.h.

◆ SECS_PER_YEAR

#define SECS_PER_YEAR   (36525 * 864) /* avoid floating-point computation */

Definition at line 85 of file timestamp.h.

◆ TIMESTAMP_END_JULIAN

#define TIMESTAMP_END_JULIAN   (109203528) /* == date2j(294277, 1, 1) */

Definition at line 181 of file timestamp.h.

◆ TIMESTAMP_IS_NOBEGIN

#define TIMESTAMP_IS_NOBEGIN (   j)    ((j) == DT_NOBEGIN)

Definition at line 115 of file timestamp.h.

◆ TIMESTAMP_IS_NOEND

#define TIMESTAMP_IS_NOEND (   j)    ((j) == DT_NOEND)

Definition at line 120 of file timestamp.h.

◆ TIMESTAMP_NOBEGIN

#define TIMESTAMP_NOBEGIN (   j)     do {(j) = DT_NOBEGIN;} while (0)

Definition at line 112 of file timestamp.h.

◆ TIMESTAMP_NOEND

#define TIMESTAMP_NOEND (   j)     do {(j) = DT_NOEND;} while (0)

Definition at line 117 of file timestamp.h.

◆ TIMESTAMP_NOT_FINITE

#define TIMESTAMP_NOT_FINITE (   j)    (TIMESTAMP_IS_NOBEGIN(j) || TIMESTAMP_IS_NOEND(j))

Definition at line 122 of file timestamp.h.

◆ TS_PREC_INV

#define TS_PREC_INV   1000000.0

Definition at line 60 of file timestamp.h.

◆ TSROUND

#define TSROUND (   j)    (rint(((double) (j)) * TS_PREC_INV) / TS_PREC_INV)

Definition at line 61 of file timestamp.h.

◆ TZDISP_LIMIT

#define TZDISP_LIMIT   ((MAX_TZDISP_HOUR + 1) * SECS_PER_HOUR)

Definition at line 104 of file timestamp.h.

◆ UNIX_EPOCH_JDATE

#define UNIX_EPOCH_JDATE   2440588 /* == date2j(1970, 1, 1) */

Definition at line 162 of file timestamp.h.

◆ USECS_PER_DAY

#define USECS_PER_DAY   INT64CONST(86400000000)

Definition at line 91 of file timestamp.h.

◆ USECS_PER_HOUR

#define USECS_PER_HOUR   INT64CONST(3600000000)

Definition at line 92 of file timestamp.h.

◆ USECS_PER_MINUTE

#define USECS_PER_MINUTE   INT64CONST(60000000)

Definition at line 93 of file timestamp.h.

◆ USECS_PER_SEC

#define USECS_PER_SEC   INT64CONST(1000000)

Definition at line 94 of file timestamp.h.

Typedef Documentation

◆ fsec_t

typedef int32 fsec_t

Definition at line 41 of file timestamp.h.

◆ TimeOffset

typedef int64 TimeOffset

Definition at line 40 of file timestamp.h.

◆ Timestamp

typedef int64 Timestamp

Definition at line 38 of file timestamp.h.

◆ TimestampTz

typedef int64 TimestampTz

Definition at line 39 of file timestamp.h.