====
---- QUERY
# TODO: Once DATE type is supported across all fileformats, move this test to
# hdfs-scan-node.test.
select id_col, date_part, date_col from date_tbl;
---- RESULTS
0,0001-01-01,0001-01-01
1,0001-01-01,0001-12-31
2,0001-01-01,0002-01-01
3,0001-01-01,1399-12-31
4,0001-01-01,2017-11-28
5,0001-01-01,9999-12-31
6,0001-01-01,NULL
10,1399-06-27,2017-11-28
11,1399-06-27,NULL
12,1399-06-27,2018-12-31
20,2017-11-27,0001-06-21
21,2017-11-27,0001-06-22
22,2017-11-27,0001-06-23
23,2017-11-27,0001-06-24
24,2017-11-27,0001-06-25
25,2017-11-27,0001-06-26
26,2017-11-27,0001-06-27
27,2017-11-27,0001-06-28
28,2017-11-27,0001-06-29
29,2017-11-27,2017-11-28
30,9999-12-31,9999-12-01
31,9999-12-31,9999-12-31
---- TYPES
INT,DATE,DATE
====
---- QUERY
# TODO: Once DATE type is supported across all fileformats, move these tests to
# exprs.test.
select count(*) from date_tbl
where '2017-11-28' in (date_col)
---- RESULTS
3
---- TYPES
bigint
====
---- QUERY
select count(*) from date_tbl
where date_col in ('2017-11-28', '0001-1-1', DATE '9999-12-31', '0001-06-25',
DATE '0001-6-23', '2018-12-31', '0001-01-01', '2018-12-31')
---- RESULTS
9
---- TYPES
bigint
====
---- QUERY
select count(*) from date_tbl
where '2017-11-28' not in (date_col)
---- RESULTS
17
---- TYPES
bigint
====
---- QUERY
select count(*) from date_tbl
where date_col not in ('2017-11-28', '0001-1-1', DATE '9999-12-31', '0001-06-25',
DATE '0001-6-23', '2018-12-31', '0001-01-01', '2018-12-31')
---- RESULTS
11
---- TYPES
bigint
====
---- QUERY
select date_col, count(*) from date_tbl where case date_col
when '2017-11-28' then "true"
else "false" end = "true" group by 1
---- RESULTS
2017-11-28,3
---- TYPES
DATE, BIGINT
====
---- QUERY
select count(*) from date_tbl where date_col
between '2017-11-28' and '2017-11-28'
---- RESULTS
3
---- TYPES
bigint
====
---- QUERY
select count(*) from date_tbl where date_col
not between '2017-11-28' and '2017-11-28'
---- RESULTS
17
---- TYPES
bigint
====
---- QUERY
# Test 0001-01-01 date handling during string to date conversion.
select CAST("0001-01-01" AS DATE);
---- RESULTS
0001-01-01
---- TYPES
DATE
====
---- QUERY
# Test < 0001 date handling during string to date conversion.
select CAST("0000-01-01" AS DATE);
---- CATCH
UDF ERROR: String to Date parse failed. Invalid string val: "0000-01-01"
====
---- QUERY
# Test <1400 date handling during string to date conversion.
select CAST("1399-12-31" AS DATE);
---- RESULTS
1399-12-31
---- TYPES
DATE
====
---- QUERY
# Test >=10000 date handling during string to date conversion.
select CAST("10000-01-01" AS DATE);
---- CATCH
UDF ERROR: String to Date parse failed. Invalid string val: "10000-01-01"
====
---- QUERY
# Test leap year checking during string to date conversion.
select CAST("1900-02-29" AS DATE);
---- CATCH
UDF ERROR: String to Date parse failed. Invalid string val: "1900-02-29"
====
---- QUERY
# Test invalid format handling during string to date conversion.
select CAST("not a date" AS DATE);
---- CATCH
UDF ERROR: String to Date parse failed. Invalid string val: "not a date"
====
---- QUERY
# Test 0001-01-01 and 9999-12-31 date literal
select DATE "0001-01-01", DATE '9999-12-31';
---- RESULTS
0001-01-01,9999-12-31
---- TYPES
DATE,DATE
====
---- QUERY
# Test < 0001 date literal.
select DATE "0000-01-01";
---- CATCH
AnalysisException: Invalid date literal: '0000-01-01'
====
---- QUERY
# Test >=10000 date literal.
select DATE "10000-01-01";
---- CATCH
AnalysisException: Invalid date literal: '10000-01-01'
====
---- QUERY
# Test invalid dare literal
select DATE "not a date";
---- CATCH
AnalysisException: Invalid date literal: 'not a date'
====
---- QUERY
# Test leap year checking in date literal
select DATE "1900-02-29";
---- CATCH
AnalysisException: Invalid date literal: '1900-02-29'
---- TYPES
DATE
====
---- QUERY
select murmur_hash(date_col), murmur_hash(date_part) from date_tbl;
---- RESULTS
-232951748055606586,7040505807414357930
-3732010091053269412,7040505807414357930
-3974699570613064843,-603226120891050888
-7063415310100391105,1363129737749198513
-7676893653355904113,-603226120891050888
1274392552456687587,-603226120891050888
232326618821724181,-603226120891050888
2388222541326638441,6952609697003645459
2741588585509081281,-603226120891050888
335637154849784215,-603226120891050888
335637154849784215,1363129737749198513
335637154849784215,7040505807414357930
4285738516310795057,-603226120891050888
5184255335234340452,-603226120891050888
5446911420184118521,-603226120891050888
6701568911426106324,-603226120891050888
6952609697003645459,6952609697003645459
6952609697003645459,7040505807414357930
7040505807414357930,7040505807414357930
7846901255014371649,7040505807414357930
NULL,1363129737749198513
NULL,7040505807414357930
---- TYPES
BIGINT, BIGINT
====
---- QUERY
# Test support for non zero-padded date strings cast as date
select cast('2001-1-21' as date), cast('2001-1-2' as date)
---- RESULTS
2001-01-21,2001-01-02
---- TYPES
DATE,DATE
====
---- QUERY
# Test support for non zero-padded date literals
select date '2001-1-21', date '2001-1-2'
---- RESULTS
2001-01-21,2001-01-02
---- TYPES
DATE,DATE
====
---- QUERY
# Test that casts are not allowed between DATE and numerical types
select cast(date '2000-12-21' as int);
---- CATCH
AnalysisException: Invalid type cast of DATE '2000-12-21' from DATE to INT
====
---- QUERY
select cast(123.45 as date);
---- CATCH
AnalysisException: Invalid type cast of 123.45 from DECIMAL(5,2) to DATE
====
---- QUERY
select count(*) from date_tbl where date_col <= '1399-12-31';
---- RESULTS
13
---- TYPES
BIGINT
====
---- QUERY
select count(*), count(date_part), count(date_col),
count(distinct date_part), count(distinct date_col)
from date_tbl;
---- RESULTS
22,22,20,4,17
---- TYPES
BIGINT,BIGINT,BIGINT,BIGINT,BIGINT
====
---- QUERY
select date_part, count(date_col) from date_tbl group by date_part;
---- RESULTS
2017-11-27,10
1399-06-27,2
9999-12-31,2
0001-01-01,6
---- TYPES
DATE, BIGINT
====
---- QUERY
select id_col, date_part, date_col from date_tbl where date_col = '1399-12-31';
---- RESULTS
3,0001-01-01,1399-12-31
---- TYPES
INT,DATE,DATE
====
---- QUERY
select count(*) from date_tbl where date_col != '1399-12-31';
---- RESULTS
19
---- TYPES
BIGINT
====
---- QUERY
select count(*) from date_tbl where date_col = date_part;
---- RESULTS
2
---- TYPES
BIGINT
====
---- QUERY
select min(date_part), max(date_part), min(date_col), max(date_col) from date_tbl;
---- RESULTS
0001-01-01,9999-12-31,0001-01-01,9999-12-31
---- TYPES
DATE, DATE, DATE, DATE
====
---- QUERY
select date_part, min(date_col), max(date_col) from date_tbl group by date_part;
---- RESULTS
2017-11-27,0001-06-21,2017-11-28
1399-06-27,2017-11-28,2018-12-31
9999-12-31,9999-12-01,9999-12-31
0001-01-01,0001-01-01,9999-12-31
---- TYPES
DATE, DATE, DATE
====
---- QUERY
select date_part, count(*) from date_tbl group by date_part;
---- RESULTS
2017-11-27,10
1399-06-27,3
9999-12-31,2
0001-01-01,7
---- TYPES
DATE, BIGINT
====
---- QUERY
select date_col, count(date_part) from date_tbl group by date_col;
---- RESULTS
0001-06-29,1
0002-01-01,1
0001-06-27,1
0001-06-25,1
1399-12-31,1
0001-06-23,1
9999-12-31,2
0001-12-31,1
0001-06-21,1
9999-12-01,1
2018-12-31,1
0001-06-26,1
2017-11-28,3
0001-06-28,1
0001-06-22,1
0001-01-01,1
0001-06-24,1
NULL,2
---- TYPES
DATE, BIGINT
====
---- QUERY
select date_part, max(date_col) from date_tbl group by date_part
having max(date_col) > '2017-11-29';
---- RESULTS
1399-06-27,2018-12-31
9999-12-31,9999-12-31
0001-01-01,9999-12-31
---- TYPES
DATE,DATE
====
---- QUERY
select ndv(date_col), distinctpc(date_col),
distinctpcsa(date_col), count(distinct date_col)
from date_tbl;
---- RESULTS
16,13,14,17
---- TYPES
BIGINT,BIGINT,BIGINT,BIGINT
====
---- QUERY
select ndv(date_part), ndv(date_col) from date_tbl;
---- RESULTS
4,16
---- TYPES
BIGINT,BIGINT
====
---- QUERY
select date_part, ndv(date_col) from date_tbl group by date_part;
---- RESULTS
2017-11-27,9
1399-06-27,2
9999-12-31,2
0001-01-01,6
---- TYPES
DATE, BIGINT
====
---- QUERY
select date_col, date_part from date_tbl order by 1, 2 limit 5;
---- RESULTS
0001-01-01,0001-01-01
0001-06-21,2017-11-27
0001-06-22,2017-11-27
0001-06-23,2017-11-27
0001-06-24,2017-11-27
---- TYPES
DATE,DATE
====
---- QUERY
select date_col, date_part from date_tbl order by 1 desc, 2 desc limit 5;
---- RESULTS
NULL,1399-06-27
NULL,0001-01-01
9999-12-31,9999-12-31
9999-12-31,0001-01-01
9999-12-01,9999-12-31
---- TYPES
DATE,DATE
====
---- QUERY
select t1.*, t2.* from date_tbl t1
join date_tbl t2
  on t1.date_col = t2.date_col
order by t1.date_col desc, t1.date_part desc, t2.date_part desc limit 5;
---- RESULTS
31,9999-12-31,9999-12-31,31,9999-12-31,9999-12-31
31,9999-12-31,9999-12-31,5,9999-12-31,0001-01-01
5,9999-12-31,0001-01-01,31,9999-12-31,9999-12-31
5,9999-12-31,0001-01-01,5,9999-12-31,0001-01-01
30,9999-12-01,9999-12-31,30,9999-12-01,9999-12-31
---- TYPES
INT,DATE,DATE,INT,DATE,DATE
====
---- QUERY
select a.date_col from date_tbl a left semi join date_tbl b on a.date_col = b.date_part;
---- RESULTS
0001-01-01
9999-12-31
9999-12-31
---- TYPES
DATE
====
---- QUERY
select first_value(date_col)
over (order by date_part, date_col rows between 2 preceding and current row)
from date_tbl;
---- RESULTS
0001-01-01
0001-01-01
0001-01-01
0001-12-31
0002-01-01
1399-12-31
2017-11-28
9999-12-31
NULL
2017-11-28
2018-12-31
NULL
0001-06-21
0001-06-22
0001-06-23
0001-06-24
0001-06-25
0001-06-26
0001-06-27
0001-06-28
0001-06-29
2017-11-28
---- TYPES
DATE
====
---- QUERY
select histogram(date_col) from date_tbl;
---- RESULTS
'0001-01-01, 0001-06-21, 0001-06-22, 0001-06-23, 0001-06-24, 0001-06-25, 0001-06-26, 0001-06-27, 0001-06-28, 0001-06-29, 0001-12-31, 0002-01-01, 1399-12-31, 2017-11-28, 2017-11-28, 2017-11-28, 2018-12-31, 9999-12-01, 9999-12-31, 9999-12-31'
---- TYPES
STRING
====
---- QUERY
select appx_median(date_part), appx_median(date_col) from date_tbl;
---- RESULTS
2017-11-27,0001-12-31
---- TYPES
DATE, DATE
====
---- QUERY
select sample(date_col) from date_tbl;
---- TYPES
# Results are unstable, just check that this doesn't crash
STRING
====
---- QUERY
select lag(date_col, 1) over (order by date_col, date_part) as d, date_col, date_part
from date_tbl
order by date_col, date_part;
---- RESULTS
NULL,0001-01-01,0001-01-01
0001-01-01,0001-06-21,2017-11-27
0001-06-21,0001-06-22,2017-11-27
0001-06-22,0001-06-23,2017-11-27
0001-06-23,0001-06-24,2017-11-27
0001-06-24,0001-06-25,2017-11-27
0001-06-25,0001-06-26,2017-11-27
0001-06-26,0001-06-27,2017-11-27
0001-06-27,0001-06-28,2017-11-27
0001-06-28,0001-06-29,2017-11-27
0001-06-29,0001-12-31,0001-01-01
0001-12-31,0002-01-01,0001-01-01
0002-01-01,1399-12-31,0001-01-01
1399-12-31,2017-11-28,0001-01-01
2017-11-28,2017-11-28,1399-06-27
2017-11-28,2017-11-28,2017-11-27
2017-11-28,2018-12-31,1399-06-27
2018-12-31,9999-12-01,9999-12-31
9999-12-01,9999-12-31,0001-01-01
9999-12-31,9999-12-31,9999-12-31
9999-12-31,NULL,0001-01-01
NULL,NULL,1399-06-27
---- TYPES
DATE, DATE, DATE
====
---- QUERY
# Query return mixed NULL and non-NULL date values.
select rn,
  case when rn % 2 = 0 then date_part end,
  case when rn % 3 = 0 then date_col end
from (
  select *, row_number() over (order by date_col, date_part) rn
  from date_tbl) v;
---- RESULTS
1,NULL,NULL
2,2017-11-27,NULL
3,NULL,0001-06-22
4,2017-11-27,NULL
5,NULL,NULL
6,2017-11-27,0001-06-25
7,NULL,NULL
8,2017-11-27,NULL
9,NULL,0001-06-28
10,2017-11-27,NULL
11,NULL,NULL
12,0001-01-01,0002-01-01
13,NULL,NULL
14,0001-01-01,NULL
15,NULL,2017-11-28
16,2017-11-27,NULL
17,NULL,NULL
18,9999-12-31,9999-12-01
19,NULL,NULL
20,9999-12-31,NULL
21,NULL,NULL
22,1399-06-27,NULL
---- TYPES
BIGINT, DATE, DATE
====
---- QUERY
# TODO: Once DATE type is supported across all fileformats move these tests to join.test.
select a.date_col from date_tbl a inner join date_tbl b on
(a.date_col = b.date_col)
where a.date_part = '2017-11-27';
---- RESULTS
0001-06-21
0001-06-24
0001-06-26
0001-06-27
0001-06-22
0001-06-25
0001-06-28
2017-11-28
2017-11-28
0001-06-23
0001-06-29
2017-11-28
---- TYPES
DATE
====
---- QUERY
# Implicit conversion tests.
# Impala returns the same results as Hive 3.1.
select cast('2012-01-01' as date) in ('2012-01-01 00:00:00'),
  cast('2012-01-01' as date) = '2012-01-01 00:00:00',
  '2012-01-01 00:00:00' = cast('2012-01-01' as date),
  cast('2012-01-01' as date) in ('2012-01-01 00:00:01'),
  cast('2012-01-01' as date) = '2012-01-01 00:00:01',
  '2012-01-01 00:00:01' = cast('2012-01-01' as date),
  cast('2012-01-01' as date) in (cast('2012-01-01 00:00:00' as timestamp)),
  cast('2012-01-01' as date) in (cast('2012-01-01 00:00:01' as timestamp)),
  cast('2012-01-01 00:00:00' as timestamp) in ('2012-01-01'),
  cast('2012-01-01 00:00:01' as timestamp) in ('2012-01-01'),
  cast('2012-01-01 00:00:01' as string) = cast('2012-01-01' as date),
  cast('2012-01-01 00:00:01' as timestamp) = cast('2012-01-01' as date),
  cast('2012-01-01 00:00:00' as timestamp) = cast('2012-01-01' as date);
---- RESULTS
true,true,true,true,true,true,true,false,true,false,true,false,true
---- TYPES
BOOLEAN,BOOLEAN,BOOLEAN,BOOLEAN,BOOLEAN,BOOLEAN,BOOLEAN,BOOLEAN,BOOLEAN,BOOLEAN,BOOLEAN,BOOLEAN,BOOLEAN
====
---- QUERY
# Impala returns the same results as Hive 3.1.
select coalesce(null, cast('2012-02-02' as timestamp), cast('2012-02-02' as timestamp)),
  coalesce(cast('2012-01-01' as date), cast('2012-02-02' as timestamp), cast('2012-02-02' as timestamp)),
  if(false, cast('2011-01-01 01:01:01' as timestamp), DATE '1499-02-02'),
  cast('2012-01-01 01:01:01' as date),
  cast('2012-1-1' as date);
---- RESULTS
2012-02-02 00:00:00,2012-01-01 00:00:00,1499-02-02 00:00:00,2012-01-01,2012-01-01
---- TYPES
TIMESTAMP,TIMESTAMP,TIMESTAMP,DATE,DATE
====
---- QUERY
# Impala returns the same results as PostgreSQL.
select coalesce('2012-01-01', cast('2012-02-02' as timestamp), cast('2012-02-02' as timestamp)),
  coalesce('2012-01-01', cast('2012-02-02' as date), cast('2012-02-02' as timestamp));
---- RESULTS
2012-01-01 00:00:00,2012-01-01 00:00:00
---- TYPES
TIMESTAMP,TIMESTAMP
====
---- QUERY
# Test that conversion fails because function call resolves to YEAR(TIMESTAMP).
select year('0009-02-15');
---- RESULTS
NULL
---- TYPES
INT
====
---- QUERY
# Test that invalid casts fail with the right error.
# DATE->TIMESTAMP conversion fails because date is out of the valid range.
select cast(date '1399-12-31' as timestamp);
---- CATCH
UDF ERROR: Date to Timestamp conversion failed. The valid date range for the Timestamp type is 1400-01-01..9999-12-31.
====
---- QUERY
# STRING->DATE conversion fails because date string is invalid.
select cast('not-a-date' as date);
---- CATCH
UDF ERROR: String to Date parse failed. Invalid string val: "not-a-date"
====
---- QUERY
# TIMESTAMP->DATE conversion fails because timestamp has no date component. Note that
# time-only timestamps are technically valid but impractical.
select cast(cast('23:59:59' as timestamp) as date);
---- CATCH
UDF ERROR: Timestamp to Date conversion failed. Timestamp has no date component.
====
---- QUERY
# Basic test for FORMAT clause in CAST().
select cast("2014-11-01" as date format "YYYY-MM-DD");
---- RESULTS
2014-11-01
---- TYPES
DATE
====
---- QUERY
# Shuffle the pattern elements in the input.
select cast("02-11-2014" as date format "dd-mm-yyyy");
---- RESULTS
2014-11-02
---- TYPES
DATE
====
---- QUERY
# Don't accept time tokens for date when format is provided.
select cast("2014-11-03 10" as date format "YYYY-MM-DD HH12");
---- CATCH
PARSE ERROR: Time tokens provided with date type.
====
---- QUERY
# Input doesn't match the format.
select cast("2014-11-04" as date format "MM-DD-YYYY");
---- CATCH
UDF ERROR: String to Date parse failed.
====
---- QUERY
# Interchangeability of separators.
select cast("2014/11/05" as date format "YYYY-MM-DD");
---- RESULTS
2014-11-05
---- TYPES
DATE
====
---- QUERY
select cast("2014/- ,11'/:-05" as date format "YYYY-MM-DD");
---- RESULTS
2014-11-05
---- TYPES
DATE
====
---- QUERY
# Day of year tests.
select cast("2014 001" as date format "YYYY DDD");
---- RESULTS
2014-01-01
---- TYPES
DATE
====
---- QUERY
select cast("365 2014" as date format "DDD-YYYY");
---- RESULTS
2014-12-31
---- TYPES
DATE
====
---- QUERY
select cast("366 2014" as date format "DDD-YYYY");
---- CATCH
UDF ERROR: String to Date parse failed.
====
---- QUERY
# Leap year with day of year token.
select cast("2000-366" as date format "YYYY DDD");
---- RESULTS
2000-12-31
---- TYPES
DATE
====
---- QUERY
select cast("2000 367" as date format "YYYY DDD");
---- CATCH
UDF ERROR: String to Date parse failed.
====
----QUERY
# Leap year with day of year token before 1400.
select cast('0004 100' as date format "YYYY DDD");
---- RESULTS
0004-04-09
---- TYPES
DATE
====
---- QUERY
# Test how missing year digits are filled from current year.
SET NOW_STRING="2019-01-01 11:11:11";
select cast("095-01-31" as date FORMAT "YYYY-MM-DD");
---- RESULTS
2095-01-31
---- TYPES
DATE
====
---- QUERY
SET NOW_STRING="2019-01-01 11:11:11";
select cast("95-01-30" as date FORMAT "YYYY-MM-DD");
---- RESULTS
2095-01-30
---- TYPES
DATE
====
---- QUERY
SET NOW_STRING="2019-01-01 11:11:11";
select cast("5-01-29" as date FORMAT "YYYY-MM-DD");
---- RESULTS
2015-01-29
---- TYPES
DATE
====
---- QUERY
SET NOW_STRING="2019-01-01 11:11:11";
select cast("95-01-28" as date FORMAT "YYY-MM-DD");
---- RESULTS
2095-01-28
---- TYPES
DATE
====
---- QUERY
SET NOW_STRING="2019-01-01 11:11:11";
select cast("5-01-27" as date FORMAT "YYY-MM-DD");
---- RESULTS
2015-01-27
---- TYPES
DATE
====
---- QUERY
SET NOW_STRING="2019-01-01 11:11:11";
select cast("5-01-26" as date FORMAT "YY-MM-DD");
---- RESULTS
2015-01-26
---- TYPES
DATE
====
---- QUERY
# RRRR with 4-digit year falls back to YYYY
SET NOW_STRING="2019-01-01 11:11:11";
select cast("2017-01-25" as date FORMAT "RRRR-MM-DD");
---- RESULTS
2017-01-25
---- TYPES
DATE
====
---- QUERY
# RRRR with 3-digit year fills digits from current year
SET NOW_STRING="2019-01-01 11:11:11";
select cast("017-01-24" as date FORMAT "RRRR-MM-DD");
---- RESULTS
2017-01-24
---- TYPES
DATE
====
---- QUERY
# RRRR with 1-digit year fills digits from current year
SET NOW_STRING="2019-01-01 11:11:11";
select cast("7-01-23" as date FORMAT "RRRR-MM-DD");
---- RESULTS
2017-01-23
---- TYPES
DATE
====
---- QUERY
# RR with 1-digit year fills digits from current year
SET NOW_STRING="2019-01-01 11:11:11";
select cast("7-01-22" as date FORMAT "RR-MM-DD");
---- RESULTS
2017-01-22
---- TYPES
DATE
====
---- QUERY
# Round year when last 2 digits of current year is less than 50
SET NOW_STRING="2049-01-01 11:11:11";
select cast("49-01-21" as date FORMAT "RRRR-MM-DD");
---- RESULTS
2049-01-21
---- TYPES
DATE
====
---- QUERY
SET NOW_STRING="2049-01-01 11:11:11";
select cast("50-01-20" as date FORMAT "RRRR-MM-DD");
---- RESULTS
1950-01-20
---- TYPES
DATE
====
---- QUERY
SET NOW_STRING="2000-01-01 11:11:11";
select cast("49-01-19" as date FORMAT "RR-MM-DD");
---- RESULTS
2049-01-19
---- TYPES
DATE
====
---- QUERY
SET NOW_STRING="2000-01-01 11:11:11";
select cast("50-01-18" as date FORMAT "RR-MM-DD");
---- RESULTS
1950-01-18
---- TYPES
DATE
====
---- QUERY
# Round year when last 2 digits of current year is greater than 49
SET NOW_STRING="2050-01-01 11:11:11";
select cast("49-01-17" as date FORMAT "RRRR-MM-DD");
---- RESULTS
2149-01-17
---- TYPES
DATE
====
---- QUERY
SET NOW_STRING="2050-01-01 11:11:11";
select cast("50-01-16" as date FORMAT "RRRR-MM-DD");
---- RESULTS
2050-01-16
---- TYPES
DATE
====
---- QUERY
SET NOW_STRING="2099-01-01 11:11:11";
select cast("49-01-15" as date FORMAT "RR-MM-DD");
---- RESULTS
2149-01-15
---- TYPES
DATE
====
---- QUERY
SET NOW_STRING="2099-01-01 11:11:11";
select cast("50-01-14" as date FORMAT "RR-MM-DD");
---- RESULTS
2050-01-14
---- TYPES
DATE
====
---- QUERY
# In a date to string cast round year act like regular 'YYYY' or 'YY' tokens.
# select date_col from date_tbl where id_col = 4;
# 2017-11-28
select cast(date_col as string format "RRRR RR") from date_tbl where id_col = 4;
---- RESULTS
'2017 17'
---- TYPES
STRING
====
---- QUERY
# Date to string conversion using all but round year tokens.
select cast(date_col as string format "YYYY YYY YY Y MM DD DDD") from date_tbl
where id_col = 4;
---- RESULTS
'2017 017 17 7 11 28 332'
---- TYPES
STRING
====
---- QUERY
# Time tokens not allowed with date type.
select cast(date_col as string format "YYYY-MM-DD HH12") from date_tbl
where id_col = 4;
---- CATCH
PARSE ERROR: Time tokens provided with date type.
====
---- QUERY
# Boundary tests with FORMAT clause
select cast("0001-01-01" as date FORMAT "YYYY-MM-DD");
---- RESULTS
0001-01-01
====
---- QUERY
select cast("9999-12-31" as date FORMAT "YYYY-MM-DD");
---- RESULTS
9999-12-31
====
---- QUERY
# Cast NULL string to date
select cast(cast(NULL as string) as date format "YYYY-MM-DD");
---- RESULTS
NULL
---- TYPES
DATE
====
---- QUERY
# Cast NULL date to string
select cast(cast(NULL as date) as string format "YYYY-MM-DD");
---- RESULTS
'NULL'
---- TYPES
STRING
====
