Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 43 additions & 43 deletions sql/core/src/test/resources/sql-tests/inputs/pgSQL/date.sql
Original file line number Diff line number Diff line change
Expand Up @@ -234,61 +234,61 @@ SELECT f1 - date '2000-01-01' AS `Days From 2K` FROM DATE_TBL;
-- SELECT EXTRACT(EPOCH FROM TIMESTAMPTZ '1970-01-01+00'); -- 0
--
-- century

SELECT EXTRACT(CENTURY FROM TO_DATE('0101-12-31 BC', 'yyyy-MM-dd G'));
SELECT EXTRACT(CENTURY FROM TO_DATE('0100-12-31 BC', 'yyyy-MM-dd G'));
SELECT EXTRACT(CENTURY FROM TO_DATE('0001-12-31 BC', 'yyyy-MM-dd G'));
SELECT EXTRACT(CENTURY FROM DATE '0001-01-01');
SELECT EXTRACT(CENTURY FROM DATE '0001-01-01 AD');
SELECT EXTRACT(CENTURY FROM DATE '1900-12-31');
SELECT EXTRACT(CENTURY FROM DATE '1901-01-01');
SELECT EXTRACT(CENTURY FROM DATE '2000-12-31');
SELECT EXTRACT(CENTURY FROM DATE '2001-01-01');
SELECT EXTRACT(CENTURY FROM CURRENT_DATE)>=21 AS True;

--
SELECT EXTRACT(CENTURY FROM TO_DATE('0101-12-31 BC', 'yyyy-MM-dd G')); -- -2
SELECT EXTRACT(CENTURY FROM TO_DATE('0100-12-31 BC', 'yyyy-MM-dd G')); -- -1
SELECT EXTRACT(CENTURY FROM TO_DATE('0001-12-31 BC', 'yyyy-MM-dd G')); -- -1
SELECT EXTRACT(CENTURY FROM DATE '0001-01-01'); -- 1
SELECT EXTRACT(CENTURY FROM DATE '0001-01-01 AD'); -- 1
SELECT EXTRACT(CENTURY FROM DATE '1900-12-31'); -- 19
SELECT EXTRACT(CENTURY FROM DATE '1901-01-01'); -- 20
SELECT EXTRACT(CENTURY FROM DATE '2000-12-31'); -- 20
SELECT EXTRACT(CENTURY FROM DATE '2001-01-01'); -- 21
SELECT EXTRACT(CENTURY FROM CURRENT_DATE)>=21 AS True; -- true
--
-- millennium

SELECT EXTRACT(MILLENNIUM FROM TO_DATE('0001-12-31 BC', 'yyyy-MM-dd G'));
SELECT EXTRACT(MILLENNIUM FROM DATE '0001-01-01 AD');
SELECT EXTRACT(MILLENNIUM FROM DATE '1000-12-31');
SELECT EXTRACT(MILLENNIUM FROM DATE '1001-01-01');
SELECT EXTRACT(MILLENNIUM FROM DATE '2000-12-31');
SELECT EXTRACT(MILLENNIUM FROM DATE '2001-01-01');
--
SELECT EXTRACT(MILLENNIUM FROM TO_DATE('0001-12-31 BC', 'yyyy-MM-dd G')); -- -1
SELECT EXTRACT(MILLENNIUM FROM DATE '0001-01-01 AD'); -- 1
SELECT EXTRACT(MILLENNIUM FROM DATE '1000-12-31'); -- 1
SELECT EXTRACT(MILLENNIUM FROM DATE '1001-01-01'); -- 2
SELECT EXTRACT(MILLENNIUM FROM DATE '2000-12-31'); -- 2
SELECT EXTRACT(MILLENNIUM FROM DATE '2001-01-01'); -- 3
-- next test to be fixed on the turn of the next millennium;-)
SELECT EXTRACT(MILLENNIUM FROM CURRENT_DATE);

SELECT EXTRACT(MILLENNIUM FROM CURRENT_DATE); -- 3
--
-- decade

SELECT EXTRACT(DECADE FROM DATE '1994-12-25');
SELECT EXTRACT(DECADE FROM DATE '0010-01-01');
SELECT EXTRACT(DECADE FROM DATE '0009-12-31');
SELECT EXTRACT(DECADE FROM TO_DATE('0001-01-01 BC', 'yyyy-MM-dd G'));
SELECT EXTRACT(DECADE FROM TO_DATE('0002-12-31 BC', 'yyyy-MM-dd G'));
SELECT EXTRACT(DECADE FROM TO_DATE('0011-01-01 BC', 'yyyy-MM-dd G'));
SELECT EXTRACT(DECADE FROM TO_DATE('0012-12-31 BC', 'yyyy-MM-dd G'));

--
SELECT EXTRACT(DECADE FROM DATE '1994-12-25'); -- 199
SELECT EXTRACT(DECADE FROM DATE '0010-01-01'); -- 1
SELECT EXTRACT(DECADE FROM DATE '0009-12-31'); -- 0
SELECT EXTRACT(DECADE FROM TO_DATE('0001-01-01 BC', 'yyyy-MM-dd G')); -- 0
SELECT EXTRACT(DECADE FROM TO_DATE('0002-12-31 BC', 'yyyy-MM-dd G')); -- -1
SELECT EXTRACT(DECADE FROM TO_DATE('0011-01-01 BC', 'yyyy-MM-dd G')); -- -1
SELECT EXTRACT(DECADE FROM TO_DATE('0012-12-31 BC', 'yyyy-MM-dd G')); -- -2
--
-- some other types:
--
-- on a timestamp.
SELECT EXTRACT(CENTURY FROM NOW())>=21 AS True;
SELECT EXTRACT(CENTURY FROM TIMESTAMP '1970-03-20 04:30:00.00000');
SELECT EXTRACT(CENTURY FROM NOW())>=21 AS True; -- true
SELECT EXTRACT(CENTURY FROM TIMESTAMP '1970-03-20 04:30:00.00000'); -- 20
-- on an interval
-- SELECT EXTRACT(CENTURY FROM INTERVAL '100 y'); -- 1
-- SELECT EXTRACT(CENTURY FROM INTERVAL '99 y'); -- 0
-- SELECT EXTRACT(CENTURY FROM INTERVAL '-99 y'); -- 0
-- SELECT EXTRACT(CENTURY FROM INTERVAL '-100 y'); -- -1

--
-- test trunc function!
SELECT DATE_TRUNC('MILLENNIUM', TIMESTAMP '1970-03-20 04:30:00.00000');
SELECT DATE_TRUNC('MILLENNIUM', DATE '1970-03-20');
SELECT DATE_TRUNC('CENTURY', TIMESTAMP '1970-03-20 04:30:00.00000');
SELECT DATE_TRUNC('CENTURY', DATE '1970-03-20');
SELECT DATE_TRUNC('CENTURY', DATE '2004-08-10');
SELECT DATE_TRUNC('CENTURY', DATE '0002-02-04');
SELECT DATE_TRUNC('CENTURY', TO_DATE('0055-08-10 BC', 'yyyy-MM-dd G'));
SELECT DATE_TRUNC('DECADE', DATE '1993-12-25');
SELECT DATE_TRUNC('DECADE', DATE '0004-12-25');
SELECT DATE_TRUNC('DECADE', TO_DATE('0002-12-31 BC', 'yyyy-MM-dd G'));
SELECT DATE_TRUNC('MILLENNIUM', TIMESTAMP '1970-03-20 04:30:00.00000'); -- 1001
SELECT DATE_TRUNC('MILLENNIUM', DATE '1970-03-20'); -- 1001-01-01
SELECT DATE_TRUNC('CENTURY', TIMESTAMP '1970-03-20 04:30:00.00000'); -- 1901
SELECT DATE_TRUNC('CENTURY', DATE '1970-03-20'); -- 1901
SELECT DATE_TRUNC('CENTURY', DATE '2004-08-10'); -- 2001-01-01
SELECT DATE_TRUNC('CENTURY', DATE '0002-02-04'); -- 0001-01-01
SELECT DATE_TRUNC('CENTURY', TO_DATE('0055-08-10 BC', 'yyyy-MM-dd G')); -- 0100-01-01 BC
SELECT DATE_TRUNC('DECADE', DATE '1993-12-25'); -- 1990-01-01
SELECT DATE_TRUNC('DECADE', DATE '0004-12-25'); -- 0001-01-01 BC
SELECT DATE_TRUNC('DECADE', TO_DATE('0002-12-31 BC', 'yyyy-MM-dd G')); -- 0011-01-01 BC

-- [SPARK-28141] Date type can not accept special values
--
Expand Down