2000-09-12 07:42:20 +02:00
|
|
|
--
|
|
|
|
-- DATE
|
|
|
|
--
|
|
|
|
CREATE TABLE DATE_TBL (f1 date);
|
|
|
|
INSERT INTO DATE_TBL VALUES ('1957-04-09');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('1957-06-13');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('1996-02-28');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('1996-02-29');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('1996-03-01');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('1996-03-02');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('1997-02-28');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('1997-02-29');
|
2003-08-28 01:29:29 +02:00
|
|
|
ERROR: date/time field value out of range: "1997-02-29"
|
2000-09-12 07:42:20 +02:00
|
|
|
INSERT INTO DATE_TBL VALUES ('1997-03-01');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('1997-03-02');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('2000-04-01');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('2000-04-02');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('2000-04-03');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('2038-04-08');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('2039-04-09');
|
|
|
|
INSERT INTO DATE_TBL VALUES ('2040-04-10');
|
|
|
|
SELECT f1 AS "Fifteen" FROM DATE_TBL;
|
|
|
|
Fifteen
|
|
|
|
------------
|
|
|
|
04-09-1957
|
|
|
|
06-13-1957
|
|
|
|
02-28-1996
|
|
|
|
02-29-1996
|
|
|
|
03-01-1996
|
|
|
|
03-02-1996
|
|
|
|
02-28-1997
|
|
|
|
03-01-1997
|
|
|
|
03-02-1997
|
|
|
|
04-01-2000
|
|
|
|
04-02-2000
|
|
|
|
04-03-2000
|
|
|
|
04-08-2038
|
|
|
|
04-09-2039
|
|
|
|
04-10-2040
|
|
|
|
(15 rows)
|
|
|
|
|
|
|
|
SELECT f1 AS "Nine" FROM DATE_TBL WHERE f1 < '2000-01-01';
|
|
|
|
Nine
|
|
|
|
------------
|
|
|
|
04-09-1957
|
|
|
|
06-13-1957
|
|
|
|
02-28-1996
|
|
|
|
02-29-1996
|
|
|
|
03-01-1996
|
|
|
|
03-02-1996
|
|
|
|
02-28-1997
|
|
|
|
03-01-1997
|
|
|
|
03-02-1997
|
|
|
|
(9 rows)
|
|
|
|
|
|
|
|
SELECT f1 AS "Three" FROM DATE_TBL
|
|
|
|
WHERE f1 BETWEEN '2000-01-01' AND '2001-01-01';
|
|
|
|
Three
|
|
|
|
------------
|
|
|
|
04-01-2000
|
|
|
|
04-02-2000
|
|
|
|
04-03-2000
|
|
|
|
(3 rows)
|
|
|
|
|
2003-11-16 21:29:16 +01:00
|
|
|
--
|
|
|
|
-- Check all the documented input formats
|
|
|
|
--
|
|
|
|
SET datestyle TO iso; -- display results in ISO
|
|
|
|
SET datestyle TO ymd;
|
|
|
|
SELECT date 'January 8, 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999-01-08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999-01-18';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-18
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1/8/1999';
|
|
|
|
ERROR: date/time field value out of range: "1/8/1999"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '1/18/1999';
|
|
|
|
ERROR: date/time field value out of range: "1/18/1999"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '18/1/1999';
|
|
|
|
ERROR: date/time field value out of range: "18/1/1999"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '01/02/03';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
2001-02-03
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '19990108';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '990108';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999.008';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'J2451187';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'January 8, 99 BC';
|
|
|
|
ERROR: date/time field value out of range: "January 8, 99 BC"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '99-Jan-08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999-Jan-08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08-Jan-99';
|
|
|
|
ERROR: date/time field value out of range: "08-Jan-99"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '08-Jan-1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'Jan-08-99';
|
|
|
|
ERROR: date/time field value out of range: "Jan-08-99"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date 'Jan-08-1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99-08-Jan';
|
|
|
|
ERROR: invalid input syntax for type date: "99-08-Jan"
|
|
|
|
SELECT date '1999-08-Jan';
|
|
|
|
ERROR: invalid input syntax for type date: "1999-08-Jan"
|
|
|
|
SELECT date '99 Jan 08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999 Jan 08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08 Jan 99';
|
|
|
|
ERROR: date/time field value out of range: "08 Jan 99"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '08 Jan 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'Jan 08 99';
|
|
|
|
ERROR: date/time field value out of range: "Jan 08 99"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date 'Jan 08 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99 08 Jan';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999 08 Jan';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99-01-08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999-01-08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08-01-99';
|
|
|
|
ERROR: date/time field value out of range: "08-01-99"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '08-01-1999';
|
|
|
|
ERROR: date/time field value out of range: "08-01-1999"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '01-08-99';
|
|
|
|
ERROR: date/time field value out of range: "01-08-99"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '01-08-1999';
|
|
|
|
ERROR: date/time field value out of range: "01-08-1999"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '99-08-01';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999-08-01';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99 01 08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999 01 08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08 01 99';
|
|
|
|
ERROR: date/time field value out of range: "08 01 99"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '08 01 1999';
|
|
|
|
ERROR: date/time field value out of range: "08 01 1999"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '01 08 99';
|
|
|
|
ERROR: date/time field value out of range: "01 08 99"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '01 08 1999';
|
|
|
|
ERROR: date/time field value out of range: "01 08 1999"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '99 08 01';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999 08 01';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SET datestyle TO dmy;
|
|
|
|
SELECT date 'January 8, 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999-01-08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999-01-18';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-18
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1/8/1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1/18/1999';
|
|
|
|
ERROR: date/time field value out of range: "1/18/1999"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '18/1/1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-18
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '01/02/03';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
2003-02-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '19990108';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '990108';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999.008';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'J2451187';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'January 8, 99 BC';
|
|
|
|
date
|
|
|
|
---------------
|
|
|
|
0099-01-08 BC
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99-Jan-08';
|
|
|
|
ERROR: date/time field value out of range: "99-Jan-08"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '1999-Jan-08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08-Jan-99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08-Jan-1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'Jan-08-99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'Jan-08-1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99-08-Jan';
|
|
|
|
ERROR: invalid input syntax for type date: "99-08-Jan"
|
|
|
|
SELECT date '1999-08-Jan';
|
|
|
|
ERROR: invalid input syntax for type date: "1999-08-Jan"
|
|
|
|
SELECT date '99 Jan 08';
|
|
|
|
ERROR: date/time field value out of range: "99 Jan 08"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '1999 Jan 08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08 Jan 99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08 Jan 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'Jan 08 99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'Jan 08 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99 08 Jan';
|
|
|
|
ERROR: invalid input syntax for type date: "99 08 Jan"
|
|
|
|
SELECT date '1999 08 Jan';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99-01-08';
|
|
|
|
ERROR: date/time field value out of range: "99-01-08"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '1999-01-08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08-01-99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08-01-1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '01-08-99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '01-08-1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99-08-01';
|
|
|
|
ERROR: date/time field value out of range: "99-08-01"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '1999-08-01';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99 01 08';
|
|
|
|
ERROR: date/time field value out of range: "99 01 08"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '1999 01 08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08 01 99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08 01 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '01 08 99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '01 08 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99 08 01';
|
|
|
|
ERROR: date/time field value out of range: "99 08 01"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '1999 08 01';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SET datestyle TO mdy;
|
|
|
|
SELECT date 'January 8, 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999-01-08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999-01-18';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-18
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1/8/1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1/18/1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-18
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '18/1/1999';
|
|
|
|
ERROR: date/time field value out of range: "18/1/1999"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '01/02/03';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
2003-01-02
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '19990108';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '990108';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '1999.008';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'J2451187';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'January 8, 99 BC';
|
|
|
|
date
|
|
|
|
---------------
|
|
|
|
0099-01-08 BC
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99-Jan-08';
|
|
|
|
ERROR: date/time field value out of range: "99-Jan-08"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '1999-Jan-08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08-Jan-99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08-Jan-1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'Jan-08-99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'Jan-08-1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99-08-Jan';
|
|
|
|
ERROR: invalid input syntax for type date: "99-08-Jan"
|
|
|
|
SELECT date '1999-08-Jan';
|
|
|
|
ERROR: invalid input syntax for type date: "1999-08-Jan"
|
|
|
|
SELECT date '99 Jan 08';
|
|
|
|
ERROR: invalid input syntax for type date: "99 Jan 08"
|
|
|
|
SELECT date '1999 Jan 08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08 Jan 99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08 Jan 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'Jan 08 99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'Jan 08 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99 08 Jan';
|
|
|
|
ERROR: invalid input syntax for type date: "99 08 Jan"
|
|
|
|
SELECT date '1999 08 Jan';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99-01-08';
|
|
|
|
ERROR: date/time field value out of range: "99-01-08"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '1999-01-08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08-01-99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08-01-1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '01-08-99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '01-08-1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99-08-01';
|
|
|
|
ERROR: date/time field value out of range: "99-08-01"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '1999-08-01';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99 01 08';
|
|
|
|
ERROR: date/time field value out of range: "99 01 08"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '1999 01 08';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08 01 99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '08 01 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '01 08 99';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '01 08 1999';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-01-08
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date '99 08 01';
|
|
|
|
ERROR: date/time field value out of range: "99 08 01"
|
|
|
|
HINT: Perhaps you need a different "datestyle" setting.
|
|
|
|
SELECT date '1999 08 01';
|
|
|
|
date
|
|
|
|
------------
|
|
|
|
1999-08-01
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
RESET datestyle;
|
2000-09-12 07:42:20 +02:00
|
|
|
--
|
|
|
|
-- Simple math
|
|
|
|
-- Leave most of it for the horology tests
|
|
|
|
--
|
|
|
|
SELECT f1 - date '2000-01-01' AS "Days From 2K" FROM DATE_TBL;
|
|
|
|
Days From 2K
|
|
|
|
--------------
|
|
|
|
-15607
|
|
|
|
-15542
|
|
|
|
-1403
|
|
|
|
-1402
|
|
|
|
-1401
|
|
|
|
-1400
|
|
|
|
-1037
|
|
|
|
-1036
|
|
|
|
-1035
|
|
|
|
91
|
|
|
|
92
|
|
|
|
93
|
|
|
|
13977
|
|
|
|
14343
|
|
|
|
14710
|
|
|
|
(15 rows)
|
|
|
|
|
|
|
|
SELECT f1 - date 'epoch' AS "Days From Epoch" FROM DATE_TBL;
|
|
|
|
Days From Epoch
|
|
|
|
-----------------
|
|
|
|
-4650
|
|
|
|
-4585
|
|
|
|
9554
|
|
|
|
9555
|
|
|
|
9556
|
|
|
|
9557
|
|
|
|
9920
|
|
|
|
9921
|
|
|
|
9922
|
|
|
|
11048
|
|
|
|
11049
|
|
|
|
11050
|
|
|
|
24934
|
|
|
|
25300
|
|
|
|
25667
|
|
|
|
(15 rows)
|
|
|
|
|
|
|
|
SELECT date 'yesterday' - date 'today' AS "One day";
|
|
|
|
One day
|
|
|
|
---------
|
|
|
|
-1
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'today' - date 'tomorrow' AS "One day";
|
|
|
|
One day
|
|
|
|
---------
|
|
|
|
-1
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'yesterday' - date 'tomorrow' AS "Two days";
|
|
|
|
Two days
|
|
|
|
----------
|
|
|
|
-2
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'tomorrow' - date 'today' AS "One day";
|
|
|
|
One day
|
|
|
|
---------
|
|
|
|
1
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'today' - date 'yesterday' AS "One day";
|
|
|
|
One day
|
|
|
|
---------
|
|
|
|
1
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT date 'tomorrow' - date 'yesterday' AS "Two days";
|
|
|
|
Two days
|
|
|
|
----------
|
|
|
|
2
|
|
|
|
(1 row)
|
|
|
|
|