15#ifndef DATATYPE_TIMESTAMP_H
16#define DATATYPE_TIMESTAMP_H
53#define MAX_TIMESTAMP_PRECISION 6
54#define MAX_INTERVAL_PRECISION 6
60#define TS_PREC_INV 1000000.0
61#define TSROUND(j) (rint(((double) (j)) * TS_PREC_INV) / TS_PREC_INV)
68#define DAYS_PER_YEAR 365.25
69#define MONTHS_PER_YEAR 12
77#define DAYS_PER_MONTH 30
78#define HOURS_PER_DAY 24
85#define SECS_PER_YEAR (36525 * 864)
86#define SECS_PER_DAY 86400
87#define SECS_PER_HOUR 3600
88#define SECS_PER_MINUTE 60
89#define MINS_PER_HOUR 60
91#define USECS_PER_DAY INT64CONST(86400000000)
92#define USECS_PER_HOUR INT64CONST(3600000000)
93#define USECS_PER_MINUTE INT64CONST(60000000)
94#define USECS_PER_SEC INT64CONST(1000000)
103#define MAX_TZDISP_HOUR 15
104#define TZDISP_LIMIT ((MAX_TZDISP_HOUR + 1) * SECS_PER_HOUR)
109#define DT_NOBEGIN PG_INT64_MIN
110#define DT_NOEND PG_INT64_MAX
112#define TIMESTAMP_NOBEGIN(j) \
113 do {(j) = DT_NOBEGIN;} while (0)
115#define TIMESTAMP_IS_NOBEGIN(j) ((j) == DT_NOBEGIN)
117#define TIMESTAMP_NOEND(j) \
118 do {(j) = DT_NOEND;} while (0)
120#define TIMESTAMP_IS_NOEND(j) ((j) == DT_NOEND)
122#define TIMESTAMP_NOT_FINITE(j) (TIMESTAMP_IS_NOBEGIN(j) || TIMESTAMP_IS_NOEND(j))
148#define JULIAN_MINYEAR (-4713)
149#define JULIAN_MINMONTH (11)
150#define JULIAN_MINDAY (24)
151#define JULIAN_MAXYEAR (5874898)
152#define JULIAN_MAXMONTH (6)
153#define JULIAN_MAXDAY (3)
155#define IS_VALID_JULIAN(y,m,d) \
156 (((y) > JULIAN_MINYEAR || \
157 ((y) == JULIAN_MINYEAR && ((m) >= JULIAN_MINMONTH))) && \
158 ((y) < JULIAN_MAXYEAR || \
159 ((y) == JULIAN_MAXYEAR && ((m) < JULIAN_MAXMONTH))))
162#define UNIX_EPOCH_JDATE 2440588
163#define POSTGRES_EPOCH_JDATE 2451545
179#define DATETIME_MIN_JULIAN (0)
180#define DATE_END_JULIAN (2147483494)
181#define TIMESTAMP_END_JULIAN (109203528)
184#define MIN_TIMESTAMP INT64CONST(-211813488000000000)
186#define END_TIMESTAMP INT64CONST(9223371331200000000)
190#define IS_VALID_DATE(d) \
191 ((DATETIME_MIN_JULIAN - POSTGRES_EPOCH_JDATE) <= (d) && \
192 (d) < (DATE_END_JULIAN - POSTGRES_EPOCH_JDATE))
195#define IS_VALID_TIMESTAMP(t) (MIN_TIMESTAMP <= (t) && (t) < END_TIMESTAMP)
INSERT INTO trips SELECT day
Definition: meos_disassemble_berlinmod.txt:22
signed int int32
Definition: pg_ext_defs.in.h:8
int64 TimeOffset
Definition: pg_ext_defs.in.h:20
long int int64
Definition: pg_ext_defs.in.h:9
Definition: pg_ext_defs.in.h:24
int64 Timestamp
Definition: timestamp_def.h:38
int64 TimestampTz
Definition: timestamp_def.h:41
int32 fsec_t
Definition: timestamp_def.h:39
int64 TimeOffset
Definition: timestamp_def.h:42