DATE(<expr> date|timestamp|string)
> select date('2022-02-02');2022-02-02
TIMESTAMP(<expr> date|timestamp|string)
> select timestamp('2022-02-02 11:11:11');2022-02-02 11:11:11
ADD_MONTHS(<start_date> date|timestamp|string, <num> integer)
> SELECT add_months('2016-08-31', 1);2016-09-30
CURRENT_DATE
> SELECT CURRENT_DATE;2022-07-27
CURRENT_TIMESTAMP
> SELECT CURRENT_TIMESTAMP;2022-07-27 18:06:00.632
CURRENT_TIMEZONE(
> select CURRENT_TIMEZONE();Asia/Shanghai
DATEDIFF(<end> date|timestamp|string, <start> date|timestamp|string)
> SELECT datediff('2009-07-31', '2009-07-30');1> SELECT datediff('2009-07-30', '2009-07-31');-1
DATE_ADD(<start_dates> date|timestamp|string, <num> integer)
> SELECT date_add('2016-07-30', 1);2016-07-31
DATE_FORMAT(<ts> date|timestamp|string, <format> string)
> SELECT date_format('2016-04-08', 'y');2016
DATE_SUB(<start_date> date|timestamp|string, <num> integer)
> SELECT date_sub('2016-07-30', 1);2016-07-29
DAY(<d> date|timestamp|string)
> SELECT day('2009-07-30');30
DAYOFYEAR(<d> date|timestamp|string)
> SELECT dayofyear('2016-04-09');100
DAYOFMONTH
> SELECT dayofmonth('2009-07-30');30
FROM_UNIXTIME(<unix_time> bigint[, <fmt> string])
> SELECT from_unixtime(0, 'yyyy-MM-dd HH:mm:ss');1969-12-31 16:00:00> SELECT from_unixtime(0);1969-12-31 16:00:00
FROM_UTC_TIMESTAMP(<ts> timestamp, <timezone> string)
> SELECT from_utc_timestamp('2016-08-31', 'Asia/Seoul');2016-08-31 09:00:00
HOUR(<ts> string|timestamp)
> SELECT hour('2009-07-30 12:58:59');12
LAST_DAY(<d> date|string)
> SELECT last_day('2009-01-12');2009-01-31
MINUTE(<ts> timestamp|string)
> SELECT minute('2009-07-30 12:58:59');58
MONTH(<d> date|timestamp|string)
> SELECT month('2016-07-30');7
MONTHS_BETWEEN(<ts1> date|timestamp|string, <ts2> date|timestamp|string, <roundOff> boolean)
> SELECT months_between('1997-02-28 10:30:00', '1996-10-30');3.94959677> SELECT months_between('1997-02-28 10:30:00', '1996-10-30', false);3.9495967741935485
NEXT_DAY(<start_date> date|timestamp|string, <day_of_week> string
> SELECT next_day('2015-01-14', 'TU');2015-01-20
NOW()
> SELECT now();2020-04-25 15:49:11.914
QUARTER(<d> date|timestamp|string)
> SELECT quarter('2016-08-31');3
SECOND(<ts> timestamp|string)
> SELECT second('2009-07-30 12:58:59');59
TO_TIMESTAMP(<ts_str> string[, <fmt> string]
> SELECT to_timestamp('2016-12-31 00:12:00');2016-12-31 00:12:00> SELECT to_timestamp('2016-12-31', 'yyyy-MM-dd');2016-12-31 00:00:00
TO_DATE(<date_str> string[, <fmt> string])
> SELECT to_date('2009-07-30 04:17:52');2009-07-30> SELECT to_date('2016-12-31', 'yyyy-MM-dd');2016-12-31
TO_UNIX_TIMESTAMP(<ts> date|timestamp|string[, <fmt> string])
> SELECT to_unix_timestamp('2016-04-08', 'yyyy-MM-dd');1460098800
-- SparkSQLTO_UTC_TIMESTAMP(<ts> date|timestamp|string, <timezone> string)-- PrestoTO_UTC_TIMESTAMP(<ts> date|timestamp|string|interger|double|decimal, <timezone> string)
-- SparkSQL> SELECT to_utc_timestamp('2016-08-31', 'Asia/Seoul');2016-08-30 15:00:00-- Presto> select to_utc_timestamp(10000, 'UTC');1970-01-01 08:00:10
TRUNC(<d> date|string, <fmt> string)
> SELECT trunc('2019-08-04', 'week');2019-07-29> SELECT trunc('2019-08-04', 'quarter');2019-07-01> SELECT trunc('2009-02-12', 'MM');2009-02-01> SELECT trunc('2015-10-27', 'YEAR');2015-01-01
DATE_TRUNC(<fmt> string, <ts> date|timestamp|string)
> SELECT date_trunc('YEAR', '2015-03-05T09:32:05.359');2015-01-01 00:00:00> SELECT date_trunc('MM', '2015-03-05T09:32:05.359');2015-03-01 00:00:00> SELECT date_trunc('DD', '2015-03-05T09:32:05.359');2015-03-05 00:00:00> SELECT date_trunc('HOUR', '2015-03-05T09:32:05.359');2015-03-05 09:00:00> SELECT date_trunc('MILLISECOND', '2015-03-05T09:32:05.123456');2015-03-05 09:32:05.123
UNIX_TIMESTAMP([<ts> date|timestamp|string[, fmt]])
> SELECT unix_timestamp();1476884637> SELECT unix_timestamp('2016-04-08', 'yyyy-MM-dd');1460041200
DAYOFWEEK(<d> date|timestamp|string)
> SELECT dayofweek('2009-07-30');5
WEEKDAY(<d> date|timestamp|string)
> SELECT weekday('2009-07-30');3
WEEKOFYEAR(<d> date|timestamp|string)
> SELECT weekofyear('2008-02-20');8
YEAR(<d> date|timestamp|string)
> SELECT year('2016-07-30');2016
MAKE_DATE(<year> integer, <month> integer, <day> integer)
> SELECT make_date(2013, 7, 15);2013-07-15> SELECT make_date(2019, 7, NULL);NULL
MAKE_TIMESTAMP(<year> integer, <month> integer, <day> integer, <hour> integer, <min> integer, <sec> integer|double|decimal[, <timezone> string])
> SELECT make_timestamp(2014, 12, 28, 6, 30, 45.887);2014-12-28 06:30:45.887> SELECT make_timestamp(2014, 12, 28, 6, 30, 45.887, 'CET');2014-12-27 21:30:45.887> SELECT make_timestamp(2019, 6, 30, 23, 59, 60);2019-07-01 00:00:00> SELECT make_timestamp(2019, 6, 30, 23, 59, 1);2019-06-30 23:59:01> SELECT make_timestamp(null, 7, 22, 15, 30, 0);NULL
DATE_PART(<field> string, <source> date|timestamp)
> SELECT date_part('YEAR', TIMESTAMP '2019-08-12 01:00:00.123456');2019> SELECT date_part('week', timestamp '2019-08-12 01:00:00.123456');33> SELECT date_part('doy', DATE'2019-08-12');224> SELECT date_part('SECONDS', timestamp'2019-10-01 00:00:01.000001');1.000001
DATE_FROM_UNIX_DATE(<unix_timestamp> integer)
> SELECT date_from_unix_date(1);1970-01-02
UNIX_DATE(<d> date)
> SELECT unix_date(DATE("1970-01-02"));1
TIMESTAMP_SECONDS(<sec> bigint|double|decimal)
> SELECT timestamp_seconds(1230219000);2008-12-25 07:30:00> SELECT timestamp_seconds(1230219000.123);2008-12-25 07:30:00.123
TIMESTAMP_MILLIS(<milli> bigint|double|decimal)
> SELECT timestamp_millis(1230219000123);2008-12-25 07:30:00.123
TIMESTAMP_MICROS(<micro> bigint)
> SELECT timestamp_micros(1230219000123123);2008-12-25 07:30:00.123123
UNIX_SECONDS(<ts> timestamp)
> SELECT unix_seconds(TIMESTAMP('1970-01-01 00:00:01Z'));1
UNIX_MILLIS(<ts> timestamp)
> SELECT unix_millis(TIMESTAMP('1970-01-01 00:00:01Z'));1000
UNIX_MICROS(<ts> timestamp)
> SELECT unix_micros(timestamp '1970 00:00:00.001')1000
TIMESTAMP_ADD(<date|timestamp> dt, <int> delta, <string> pattern)TIMESTAMP_ADD(<date|timestamp> dt, <int> delta, <string> pattern)
> SELECT timestamp_add(date '2016-12-31', -1, 'M');2016-11-30T00:00:00.000+08:00> SELECT timestamp_add(timestamp '2016-12-31 00:12:00', 1, 'm');2016-12-31T00:13:00.000+08:00> SELECT timestamp_add(timestamp '2016-12-31 00:00:00', -1, 'm');2016-12-30T23:59:00.000+08:00
文档反馈