1997-05-11 17:42:09 +02:00
|
|
|
--
|
2000-01-05 07:07:58 +01:00
|
|
|
-- HOROLOGY
|
1997-05-11 17:42:09 +02:00
|
|
|
--
|
2001-09-28 10:00:11 +02:00
|
|
|
-- needed so tests pass even in Australia
|
|
|
|
SET australian_timezones = 'off';
|
|
|
|
SET DateStyle = 'Postgres,US';
|
|
|
|
|
2000-09-12 07:42:20 +02:00
|
|
|
--
|
|
|
|
-- date, time arithmetic
|
|
|
|
--
|
|
|
|
|
|
|
|
SELECT date '1981-02-03' + time '04:05:06' AS "Date + Time";
|
|
|
|
SELECT date '1991-02-03' + time with time zone '04:05:06 PST' AS "Date + Time PST";
|
|
|
|
SELECT date '2001-02-03' + time with time zone '04:05:06 UTC' AS "Date + Time UTC";
|
|
|
|
SELECT date '1991-02-03' + interval '2 years' AS "Add Two Years";
|
|
|
|
SELECT date '2001-12-13' - interval '2 years' AS "Subtract Two Years";
|
2001-09-28 10:00:11 +02:00
|
|
|
-- subtract time from date should not make sense; use interval instead
|
2000-09-12 07:42:20 +02:00
|
|
|
SELECT date '1991-02-03' - time '04:05:06' AS "Subtract Time";
|
|
|
|
SELECT date '1991-02-03' - time with time zone '04:05:06 UTC' AS "Subtract Time UTC";
|
|
|
|
|
1997-05-11 17:42:09 +02:00
|
|
|
--
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
-- timestamp, interval arithmetic
|
1997-05-11 17:42:09 +02:00
|
|
|
--
|
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT timestamp without time zone '1996-03-01' - interval '1 second' AS "Feb 29";
|
|
|
|
SELECT timestamp without time zone '1999-03-01' - interval '1 second' AS "Feb 28";
|
|
|
|
SELECT timestamp without time zone '2000-03-01' - interval '1 second' AS "Feb 29";
|
|
|
|
SELECT timestamp without time zone '1999-12-01' + interval '1 month - 1 second' AS "Dec 31";
|
|
|
|
|
|
|
|
-- Shorthand values
|
|
|
|
-- Not directly usable for regression testing since these are not constants.
|
|
|
|
-- So, just try to test parser and hope for the best - thomas 97/04/26
|
|
|
|
SELECT (timestamp without time zone 'today' = (timestamp without time zone 'yesterday' + interval '1 day')) as "True";
|
|
|
|
SELECT (timestamp without time zone 'today' = (timestamp without time zone 'tomorrow' - interval '1 day')) as "True";
|
|
|
|
SELECT (timestamp without time zone 'tomorrow' = (timestamp without time zone 'yesterday' + interval '2 days')) as "True";
|
|
|
|
SELECT (timestamp without time zone 'tomorrow' > 'now') as "True";
|
|
|
|
|
2001-10-03 07:29:27 +02:00
|
|
|
-- Convert from date and time to timestamp
|
|
|
|
-- This test used to be timestamp(date,time) but no longer allowed by grammar
|
|
|
|
-- to enable support for SQL99 timestamp type syntax.
|
|
|
|
SELECT date '1994-01-01' + time '11:00' AS "Jan_01_1994_11am";
|
|
|
|
SELECT date '1994-01-01' + time '10:00' AS "Jan_01_1994_10am";
|
|
|
|
SELECT date '1994-01-01' + time '11:00-5' AS "Jan_01_1994_8am";
|
|
|
|
SELECT "timestamp"(date '1994-01-01', time with time zone '11:00-5') AS "Jan_01_1994_11am";
|
2001-09-28 10:00:11 +02:00
|
|
|
|
|
|
|
SELECT '' AS "64", d1 + interval '1 year' AS one_year FROM TIMESTAMP_TBL;
|
|
|
|
SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL;
|
|
|
|
|
|
|
|
SELECT timestamp with time zone '1996-03-01' - interval '1 second' AS "Feb 29";
|
|
|
|
SELECT timestamp with time zone '1999-03-01' - interval '1 second' AS "Feb 28";
|
|
|
|
SELECT timestamp with time zone '2000-03-01' - interval '1 second' AS "Feb 29";
|
|
|
|
SELECT timestamp with time zone '1999-12-01' + interval '1 month - 1 second' AS "Dec 31";
|
|
|
|
|
|
|
|
SELECT (timestamp with time zone 'today' = (timestamp with time zone 'yesterday' + interval '1 day')) as "True";
|
|
|
|
SELECT (timestamp with time zone 'today' = (timestamp with time zone 'tomorrow' - interval '1 day')) as "True";
|
|
|
|
SELECT (timestamp with time zone 'tomorrow' = (timestamp with time zone 'yesterday' + interval '2 days')) as "True";
|
|
|
|
SELECT (timestamp with time zone 'tomorrow' > 'now') as "True";
|
|
|
|
|
|
|
|
SELECT timestamptz(date '1994-01-01', time '11:00') AS "Jan_01_1994_10am";
|
|
|
|
SELECT timestamptz(date '1994-01-01', time '10:00') AS "Jan_01_1994_9am";
|
|
|
|
SELECT timestamptz(date '1994-01-01', time with time zone '11:00-8') AS "Jan_01_1994_11am";
|
|
|
|
SELECT timestamptz(date '1994-01-01', time with time zone '10:00-8') AS "Jan_01_1994_10am";
|
|
|
|
SELECT timestamptz(date '1994-01-01', time with time zone '11:00-5') AS "Jan_01_1994_8am";
|
|
|
|
|
|
|
|
SELECT '' AS "64", d1 + interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
|
|
|
|
SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
|
2000-01-05 07:07:58 +01:00
|
|
|
|
2000-12-03 15:51:12 +01:00
|
|
|
--
|
|
|
|
-- time, interval arithmetic
|
|
|
|
--
|
|
|
|
|
|
|
|
SELECT CAST(time '01:02' AS interval) AS "+01:02";
|
|
|
|
SELECT CAST(interval '02:03' AS time) AS "02:03:00";
|
|
|
|
SELECT time '01:30' + interval '02:01' AS "03:31:00";
|
|
|
|
SELECT time '01:30' - interval '02:01' AS "23:29:00";
|
|
|
|
SELECT time '02:30' + interval '36:01' AS "14:31:00";
|
|
|
|
SELECT time '03:30' + interval '1 month 04:01' AS "07:31:00";
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT interval '04:30' - time '01:02' AS "20:32:00";
|
2000-12-03 15:51:12 +01:00
|
|
|
SELECT CAST(time with time zone '01:02-08' AS interval) AS "+00:01";
|
|
|
|
SELECT CAST(interval '02:03' AS time with time zone) AS "02:03:00-08";
|
|
|
|
SELECT time with time zone '01:30-08' - interval '02:01' AS "23:29:00-08";
|
|
|
|
SELECT time with time zone '02:30-08' + interval '36:01' AS "14:31:00-08";
|
|
|
|
|
2001-04-04 22:03:11 +02:00
|
|
|
-- These two tests cannot be used because they default to current timezone,
|
|
|
|
-- which may be either -08 or -07 depending on the time of year.
|
|
|
|
-- SELECT time with time zone '01:30' + interval '02:01' AS "03:31:00-08";
|
|
|
|
-- SELECT time with time zone '03:30' + interval '1 month 04:01' AS "07:31:00-08";
|
2001-04-06 07:50:29 +02:00
|
|
|
-- Try the following two tests instead, as a poor substitute
|
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT CAST(CAST(date 'today' + time with time zone '01:30'
|
|
|
|
+ interval '02:01' AS time with time zone) AS time) AS "03:31:00";
|
2001-04-06 07:50:29 +02:00
|
|
|
|
2001-09-29 17:17:42 +02:00
|
|
|
SELECT CAST(cast(date 'today' + time with time zone '03:30-08'
|
|
|
|
+ interval '1 month 04:01' as timestamp without time zone) AS time) AS "07:31:00";
|
2000-12-03 15:51:12 +01:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT interval '04:30' - time with time zone '01:02-05' AS "20:32:00-05";
|
2000-12-03 15:51:12 +01:00
|
|
|
|
|
|
|
SELECT t.d1 + i.f1 AS "102" FROM TIMESTAMP_TBL t, INTERVAL_TBL i
|
|
|
|
WHERE t.d1 BETWEEN '1990-01-01' AND '2001-01-01'
|
|
|
|
AND i.f1 BETWEEN '00:00' AND '23:00';
|
|
|
|
|
|
|
|
SELECT t.d1 - i.f1 AS "102" FROM TIMESTAMP_TBL t, INTERVAL_TBL i
|
|
|
|
WHERE t.d1 BETWEEN '1990-01-01' AND '2001-01-01'
|
|
|
|
AND i.f1 BETWEEN '00:00' AND '23:00';
|
|
|
|
|
|
|
|
SELECT t.f1 + i.f1 AS "80" FROM TIME_TBL t, INTERVAL_TBL i;
|
|
|
|
SELECT t.f1 - i.f1 AS "80" FROM TIME_TBL t, INTERVAL_TBL i;
|
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT t.f1 + i.f1 AS "100" FROM TIMETZ_TBL t, INTERVAL_TBL i;
|
|
|
|
SELECT t.f1 - i.f1 AS "100" FROM TIMETZ_TBL t, INTERVAL_TBL i;
|
2000-12-03 15:51:12 +01:00
|
|
|
|
|
|
|
-- SQL9x OVERLAPS operator
|
2001-09-28 10:00:11 +02:00
|
|
|
-- test with time zone
|
|
|
|
SELECT (timestamp with time zone '2000-11-27', timestamp with time zone '2000-11-28')
|
|
|
|
OVERLAPS (timestamp with time zone '2000-11-27 12:00', timestamp with time zone '2000-11-30') AS "True";
|
|
|
|
|
|
|
|
SELECT (timestamp with time zone '2000-11-26', timestamp with time zone '2000-11-27')
|
|
|
|
OVERLAPS (timestamp with time zone '2000-11-27 12:00', timestamp with time zone '2000-11-30') AS "False";
|
|
|
|
|
|
|
|
SELECT (timestamp with time zone '2000-11-27', timestamp with time zone '2000-11-28')
|
|
|
|
OVERLAPS (timestamp with time zone '2000-11-27 12:00', interval '1 day') AS "True";
|
|
|
|
|
|
|
|
SELECT (timestamp with time zone '2000-11-27', interval '12 hours')
|
|
|
|
OVERLAPS (timestamp with time zone '2000-11-27 12:00', timestamp with time zone '2000-11-30') AS "False";
|
|
|
|
|
|
|
|
SELECT (timestamp with time zone '2000-11-27', interval '12 hours')
|
|
|
|
OVERLAPS (timestamp with time zone '2000-11-27', interval '12 hours') AS "True";
|
|
|
|
|
|
|
|
SELECT (timestamp with time zone '2000-11-27', interval '12 hours')
|
|
|
|
OVERLAPS (timestamp with time zone '2000-11-27 12:00', interval '12 hours') AS "False";
|
2000-12-03 15:51:12 +01:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
-- test without time zone
|
|
|
|
SELECT (timestamp without time zone '2000-11-27', timestamp without time zone '2000-11-28')
|
|
|
|
OVERLAPS (timestamp without time zone '2000-11-27 12:00', timestamp without time zone '2000-11-30') AS "True";
|
2000-12-03 15:51:12 +01:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT (timestamp without time zone '2000-11-26', timestamp without time zone '2000-11-27')
|
|
|
|
OVERLAPS (timestamp without time zone '2000-11-27 12:00', timestamp without time zone '2000-11-30') AS "False";
|
2000-12-03 15:51:12 +01:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT (timestamp without time zone '2000-11-27', timestamp without time zone '2000-11-28')
|
|
|
|
OVERLAPS (timestamp without time zone '2000-11-27 12:00', interval '1 day') AS "True";
|
2000-12-03 15:51:12 +01:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT (timestamp without time zone '2000-11-27', interval '12 hours')
|
|
|
|
OVERLAPS (timestamp without time zone '2000-11-27 12:00', timestamp without time zone '2000-11-30') AS "False";
|
2000-12-03 15:51:12 +01:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT (timestamp without time zone '2000-11-27', interval '12 hours')
|
|
|
|
OVERLAPS (timestamp without time zone '2000-11-27', interval '12 hours') AS "True";
|
2000-12-03 15:51:12 +01:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT (timestamp without time zone '2000-11-27', interval '12 hours')
|
|
|
|
OVERLAPS (timestamp without time zone '2000-11-27 12:00', interval '12 hours') AS "False";
|
2000-12-03 15:51:12 +01:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
-- test time and interval
|
2000-12-03 15:51:12 +01:00
|
|
|
SELECT (time '00:00', time '01:00')
|
|
|
|
OVERLAPS (time '00:30', time '01:30') AS "True";
|
|
|
|
|
|
|
|
SELECT (time '00:00', interval '1 hour')
|
|
|
|
OVERLAPS (time '00:30', interval '1 hour') AS "True";
|
|
|
|
|
|
|
|
SELECT (time '00:00', interval '1 hour')
|
|
|
|
OVERLAPS (time '01:30', interval '1 hour') AS "False";
|
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
-- SQL99 seems to want this to be false (and we conform to the spec).
|
|
|
|
-- istm that this *should* return true, on the theory that time
|
|
|
|
-- intervals can wrap around the day boundary - thomas 2001-09-25
|
2000-12-03 15:51:12 +01:00
|
|
|
SELECT (time '00:00', interval '1 hour')
|
2001-09-28 10:00:11 +02:00
|
|
|
OVERLAPS (time '01:30', interval '1 day') AS "False";
|
2000-12-03 15:51:12 +01:00
|
|
|
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
CREATE TABLE TEMP_TIMESTAMP (f1 timestamp);
|
1997-05-11 17:42:09 +02:00
|
|
|
|
|
|
|
-- get some candidate input values
|
|
|
|
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
INSERT INTO TEMP_TIMESTAMP (f1)
|
|
|
|
SELECT d1 FROM TIMESTAMP_TBL
|
1997-05-11 17:42:09 +02:00
|
|
|
WHERE d1 BETWEEN '13-jun-1957' AND '1-jan-1997'
|
|
|
|
OR d1 BETWEEN '1-jan-1999' AND '1-jan-2010';
|
|
|
|
|
2001-10-03 07:29:27 +02:00
|
|
|
SELECT '' AS "16", f1 AS "timestamp"
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
FROM TEMP_TIMESTAMP
|
2001-10-03 07:29:27 +02:00
|
|
|
ORDER BY "timestamp";
|
1997-05-11 17:42:09 +02:00
|
|
|
|
2001-10-18 19:30:21 +02:00
|
|
|
SELECT '' AS "160", d.f1 AS "timestamp", t.f1 AS "interval", d.f1 + t.f1 AS plus
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
FROM TEMP_TIMESTAMP d, INTERVAL_TBL t
|
2001-10-18 19:30:21 +02:00
|
|
|
ORDER BY plus, "timestamp", "interval";
|
1997-05-11 17:42:09 +02:00
|
|
|
|
2001-10-18 19:30:21 +02:00
|
|
|
SELECT '' AS "160", d.f1 AS "timestamp", t.f1 AS "interval", d.f1 - t.f1 AS minus
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
FROM TEMP_TIMESTAMP d, INTERVAL_TBL t
|
1997-05-11 17:42:09 +02:00
|
|
|
WHERE isfinite(d.f1)
|
2001-10-18 19:30:21 +02:00
|
|
|
ORDER BY minus, "timestamp", "interval";
|
1997-05-11 17:42:09 +02:00
|
|
|
|
2001-10-03 07:29:27 +02:00
|
|
|
SELECT '' AS "16", d.f1 AS "timestamp", timestamp '1980-01-06 00:00 GMT' AS gpstime_zero,
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
d.f1 - timestamp '1980-01-06 00:00 GMT' AS difference
|
|
|
|
FROM TEMP_TIMESTAMP d
|
1997-05-11 17:42:09 +02:00
|
|
|
ORDER BY difference;
|
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS "226", d1.f1 AS timestamp1, d2.f1 AS timestamp2, d1.f1 - d2.f1 AS difference
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
FROM TEMP_TIMESTAMP d1, TEMP_TIMESTAMP d2
|
|
|
|
ORDER BY timestamp1, timestamp2, difference;
|
1997-05-11 17:42:09 +02:00
|
|
|
|
|
|
|
--
|
|
|
|
-- abstime, reltime arithmetic
|
|
|
|
--
|
|
|
|
|
2000-09-14 17:55:07 +02:00
|
|
|
SELECT '' AS ten, ABSTIME_TBL.f1 AS abstime, RELTIME_TBL.f1 AS reltime
|
2001-09-28 10:00:11 +02:00
|
|
|
WHERE (ABSTIME_TBL.f1 + RELTIME_TBL.f1) < abstime 'Jan 14 14:00:00 1971'
|
2000-09-14 17:55:07 +02:00
|
|
|
ORDER BY abstime, reltime;
|
|
|
|
|
|
|
|
-- these four queries should return the same answer
|
|
|
|
-- the "infinity" and "-infinity" tuples in ABSTIME_TBL cannot be added and
|
|
|
|
-- therefore, should not show up in the results.
|
|
|
|
|
|
|
|
SELECT '' AS three, ABSTIME_TBL.*
|
|
|
|
WHERE (ABSTIME_TBL.f1 + reltime '@ 3 year') -- +3 years
|
2001-09-28 10:00:11 +02:00
|
|
|
< abstime 'Jan 14 14:00:00 1977';
|
2000-09-14 17:55:07 +02:00
|
|
|
|
|
|
|
SELECT '' AS three, ABSTIME_TBL.*
|
|
|
|
WHERE (ABSTIME_TBL.f1 + reltime '@ 3 year ago') -- -3 years
|
2001-09-28 10:00:11 +02:00
|
|
|
< abstime 'Jan 14 14:00:00 1971';
|
2000-09-14 17:55:07 +02:00
|
|
|
|
|
|
|
SELECT '' AS three, ABSTIME_TBL.*
|
|
|
|
WHERE (ABSTIME_TBL.f1 - reltime '@ 3 year') -- -(+3) years
|
2001-09-28 10:00:11 +02:00
|
|
|
< abstime 'Jan 14 14:00:00 1971';
|
2000-09-14 17:55:07 +02:00
|
|
|
|
|
|
|
SELECT '' AS three, ABSTIME_TBL.*
|
|
|
|
WHERE (ABSTIME_TBL.f1 - reltime '@ 3 year ago') -- -(-3) years
|
2001-09-28 10:00:11 +02:00
|
|
|
< abstime 'Jan 14 14:00:00 1977';
|
1997-05-11 17:42:09 +02:00
|
|
|
|
|
|
|
--
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
-- Conversions
|
1997-05-11 17:42:09 +02:00
|
|
|
--
|
|
|
|
|
2001-10-03 07:29:27 +02:00
|
|
|
SELECT '' AS "16", f1 AS "timestamp", date(f1) AS date
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
FROM TEMP_TIMESTAMP
|
|
|
|
WHERE f1 <> timestamp 'current'
|
2001-10-03 07:29:27 +02:00
|
|
|
ORDER BY date, "timestamp";
|
1997-05-11 17:42:09 +02:00
|
|
|
|
2001-10-03 07:29:27 +02:00
|
|
|
SELECT '' AS "16", f1 AS "timestamp", abstime(f1) AS abstime
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
FROM TEMP_TIMESTAMP
|
1997-05-11 17:42:09 +02:00
|
|
|
ORDER BY abstime;
|
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS four, f1 AS abstime, date(f1) AS date
|
1997-05-11 17:42:09 +02:00
|
|
|
FROM ABSTIME_TBL
|
2000-01-05 07:07:58 +01:00
|
|
|
WHERE isfinite(f1) AND f1 <> abstime 'current'
|
2000-03-16 18:03:41 +01:00
|
|
|
ORDER BY date, abstime;
|
1997-05-11 17:42:09 +02:00
|
|
|
|
2001-10-03 07:29:27 +02:00
|
|
|
SELECT '' AS two, d1 AS "timestamp", abstime(d1) AS abstime
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
FROM TIMESTAMP_TBL WHERE NOT isfinite(d1);
|
1997-05-11 17:42:09 +02:00
|
|
|
|
2001-10-03 07:29:27 +02:00
|
|
|
SELECT '' AS three, f1 as abstime, cast(f1 as timestamp) AS "timestamp"
|
1997-05-11 17:42:09 +02:00
|
|
|
FROM ABSTIME_TBL WHERE NOT isfinite(f1);
|
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS ten, f1 AS interval, reltime(f1) AS reltime
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
FROM INTERVAL_TBL;
|
1997-05-11 17:42:09 +02:00
|
|
|
|
2001-10-18 19:30:21 +02:00
|
|
|
SELECT '' AS six, f1 as reltime, CAST(f1 AS interval) AS interval
|
1997-05-11 17:42:09 +02:00
|
|
|
FROM RELTIME_TBL;
|
|
|
|
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
DROP TABLE TEMP_TIMESTAMP;
|
1997-05-11 17:42:09 +02:00
|
|
|
|
1997-06-23 17:05:52 +02:00
|
|
|
--
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
-- Formats
|
1997-06-23 17:05:52 +02:00
|
|
|
--
|
|
|
|
|
|
|
|
SET DateStyle TO 'US,Postgres';
|
|
|
|
|
|
|
|
SHOW DateStyle;
|
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS "64", d1 AS us_postgres FROM TIMESTAMP_TBL;
|
1997-06-23 17:05:52 +02:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS seven, f1 AS us_postgres FROM ABSTIME_TBL;
|
1997-07-01 02:34:34 +02:00
|
|
|
|
|
|
|
SET DateStyle TO 'US,ISO';
|
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS "64", d1 AS us_iso FROM TIMESTAMP_TBL;
|
1997-07-01 02:34:34 +02:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS seven, f1 AS us_iso FROM ABSTIME_TBL;
|
1997-07-01 02:34:34 +02:00
|
|
|
|
|
|
|
SET DateStyle TO 'US,SQL';
|
|
|
|
|
|
|
|
SHOW DateStyle;
|
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS "64", d1 AS us_sql FROM TIMESTAMP_TBL;
|
1997-07-01 02:34:34 +02:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS seven, f1 AS us_sql FROM ABSTIME_TBL;
|
1997-07-01 02:34:34 +02:00
|
|
|
|
|
|
|
SET DateStyle TO 'European,Postgres';
|
|
|
|
|
|
|
|
SHOW DateStyle;
|
|
|
|
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
INSERT INTO TIMESTAMP_TBL VALUES('13/06/1957');
|
1997-07-01 02:34:34 +02:00
|
|
|
|
All regression tests pass except for rules.sql (unrelated).
Implement "date/time grand unification".
Transform datetime and timespan into timestamp and interval.
Deprecate datetime and timespan, though translate to new types in gram.y.
Transform all datetime and timespan catalog entries into new types.
Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
routines for all date/time types.
date.{h,c} now deals with date, time types.
timestamp.{h,c} now deals with timestamp, interval types.
nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.
2000-02-16 18:27:27 +01:00
|
|
|
SELECT count(*) as one FROM TIMESTAMP_TBL WHERE d1 = 'Jun 13 1957';
|
1997-07-01 02:34:34 +02:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS "65", d1 AS european_postgres FROM TIMESTAMP_TBL;
|
1997-07-01 02:34:34 +02:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS seven, f1 AS european_postgres FROM ABSTIME_TBL;
|
1997-07-01 02:34:34 +02:00
|
|
|
|
|
|
|
SET DateStyle TO 'European,ISO';
|
|
|
|
|
|
|
|
SHOW DateStyle;
|
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS "65", d1 AS european_iso FROM TIMESTAMP_TBL;
|
1997-07-01 02:34:34 +02:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS seven, f1 AS european_iso FROM ABSTIME_TBL;
|
1997-07-01 02:34:34 +02:00
|
|
|
|
|
|
|
SET DateStyle TO 'European,SQL';
|
|
|
|
|
|
|
|
SHOW DateStyle;
|
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS "65", d1 AS european_sql FROM TIMESTAMP_TBL;
|
1997-06-23 17:05:52 +02:00
|
|
|
|
2001-09-28 10:00:11 +02:00
|
|
|
SELECT '' AS seven, f1 AS european_sql FROM ABSTIME_TBL;
|
1997-06-23 17:05:52 +02:00
|
|
|
|
|
|
|
RESET DateStyle;
|