blob: 4e5249f2662d44cd655019c2509c336dbb37cf84 [file] [log] [blame]
--! qt:dataset:src
drop table date_udf;
drop table date_udf_string;
drop table date_udf_flight;
create table date_udf (d date);
create table date_udf_string (d string);
from src
insert overwrite table date_udf
select '2011-05-06' limit 1
insert overwrite table date_udf_string
select '2011-05-06' limit 1;
create table date_udf_flight (
ORIGIN_CITY_NAME string,
DEST_CITY_NAME string,
FL_DATE date,
ARR_DELAY float,
FL_NUM int
);
LOAD DATA LOCAL INPATH '../../data/files/flights_tiny.txt.1' OVERWRITE INTO TABLE date_udf_flight;
-- Test UDFs with date input
select unix_timestamp(cast(d as timestamp with local time zone)), unix_timestamp(d), year(d), month(d), day(d), dayofmonth(d),
weekofyear(d), to_date(d)
from date_udf;
select date_add(d, 5), date_sub(d, 10)
from date_udf;
select datediff(d, d), datediff(d, '2002-03-21'), datediff('2002-03-21', d),
datediff(cast ('2002-03-21 00:00:00' as timestamp), d),
datediff(d, cast ('2002-03-21 00:00:00' as timestamp))
from date_udf;
-- Test UDFs with string input
select unix_timestamp(d), year(d), month(d), day(d), dayofmonth(d),
weekofyear(d), to_date(d)
from date_udf_string;
select date_add(d, 5), date_sub(d, 10) from date_udf_string;
select
datediff(d, d),
datediff(d, '2002-03-21'),
datediff(d, date '2002-03-21'),
datediff('2002-03-21', d),
datediff(date '2002-03-21', d),
datediff('2002-03-21 00:00:00', d),
datediff(timestamp '2002-03-21 00:00:00', d),
datediff(d, '2002-03-21 00:00:00'),
datediff(d, timestamp '2002-03-21 00:00:00'),
datediff('2002-03-21 08:01:59', d),
datediff(timestamp '2002-03-21 08:01:59', d),
datediff(d, '2002-03-21 08:01:59'),
datediff(d, timestamp '2002-03-21 08:01:59')
from date_udf_string;
select
to_utc_timestamp(date '1970-01-01', 'America/Los_Angeles'),
from_utc_timestamp(date '1970-01-01', 'America/Los_Angeles'),
to_utc_timestamp(date '2013-06-19', 'America/Los_Angeles'),
from_utc_timestamp(date '2013-06-19', 'America/Los_Angeles')
from date_udf;
-- should all be true
select
to_utc_timestamp(date '1970-01-01', 'America/Los_Angeles') = to_utc_timestamp(timestamp('1970-01-01 00:00:00'), 'America/Los_Angeles'),
from_utc_timestamp(date '1970-01-01', 'America/Los_Angeles') = from_utc_timestamp(timestamp('1970-01-01 00:00:00'), 'America/Los_Angeles'),
to_utc_timestamp(date '2013-06-19', 'America/Los_Angeles') = to_utc_timestamp(timestamp('2013-06-19 00:00:00'), 'America/Los_Angeles'),
from_utc_timestamp(date '2013-06-19', 'America/Los_Angeles') = from_utc_timestamp(timestamp('2013-06-19 00:00:00'), 'America/Los_Angeles')
from date_udf;
-- Aggregation functions (min/max)
select min(fl_date) from date_udf_flight;
select max(fl_date) from date_udf_flight;
create external table testdatediff(datetimecol string) stored as orc;
insert into testdatediff values ('2019-09-09T10:45:49+02:00'),('2019-07-24');
select datetimecol from testdatediff where datediff(cast(current_timestamp as string), datetimecol)>183;
select cast(datetimecol as date), datetimecol from testdatediff;
drop table testdatediff;
drop table date_udf;
drop table date_udf_string;
drop table date_udf_flight;