PPL date and time functions
Note
To see which AWS data source integrations support this PPL function, see Functions.
DAY
Usage: DAY(date)
extracts the day of the month for a date, in the range 1 to 31.
Argument type: STRING/DATE/TIMESTAMP
Return type: INTEGER
Synonyms: DAYOFMONTH
,
DAY_OF_MONTH
Example:
os> source=people | eval `DAY(DATE('2020-08-26'))` = DAY(DATE('2020-08-26')) | fields `DAY(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +---------------------------+ | DAY(DATE('2020-08-26')) | |---------------------------| | 26 | +---------------------------+
DAYOFMONTH
Usage:
DAYOFMONTH(date)
extracts the day of the month for a date,
in the range 1 to 31.
Argument type: STRING/DATE/TIMESTAMP
Return type: INTEGER
Synonyms: DAY
,
DAY_OF_MONTH
Example:
os> source=people | eval `DAYOFMONTH(DATE('2020-08-26'))` = DAYOFMONTH(DATE('2020-08-26')) | fields `DAYOFMONTH(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +----------------------------------+ | DAYOFMONTH(DATE('2020-08-26')) | |----------------------------------| | 26 | +----------------------------------+
DAY_OF_MONTH
Usage:
DAY_OF_MONTH(DATE)
extracts the day of the month for a
date, in the range 1 to 31.
Argument type: STRING/DATE/TIMESTAMP
Return type: INTEGER
Synonyms: DAY
,
DAYOFMONTH
Example:
os> source=people | eval `DAY_OF_MONTH(DATE('2020-08-26'))` = DAY_OF_MONTH(DATE('2020-08-26')) | fields `DAY_OF_MONTH(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +------------------------------------+ | DAY_OF_MONTH(DATE('2020-08-26')) | |------------------------------------| | 26 | +------------------------------------+
DAYOFWEEK
Usage:
DAYOFWEEK(DATE)
returns the weekday index for a date (1 =
Sunday, 2 = Monday, ..., 7 = Saturday).
Argument type: STRING/DATE/TIMESTAMP
Return type: INTEGER
Synonyms:
DAY_OF_WEEK
Example:
os> source=people | eval `DAYOFWEEK(DATE('2020-08-26'))` = DAYOFWEEK(DATE('2020-08-26')) | fields `DAYOFWEEK(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +---------------------------------+ | DAYOFWEEK(DATE('2020-08-26')) | |---------------------------------| | 4 | +---------------------------------+
DAY_OF_WEEK
Usage:
DAY_OF_WEEK(DATE)
returns the weekday index for a date (1 =
Sunday, 2 = Monday, ..., 7 = Saturday).
Argument type: STRING/DATE/TIMESTAMP
Return type: INTEGER
Synonyms:
DAYOFWEEK
Example:
os> source=people | eval `DAY_OF_WEEK(DATE('2020-08-26'))` = DAY_OF_WEEK(DATE('2020-08-26')) | fields `DAY_OF_WEEK(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +-----------------------------------+ | DAY_OF_WEEK(DATE('2020-08-26')) | |-----------------------------------| | 4 | +-----------------------------------+
DAYOFYEAR
Usage:
DAYOFYEAR(DATE)
returns the day of the year for a date, in
the range 1 to 366.
Argument type: STRING/DATE/TIMESTAMP
Return type: INTEGER
Synonyms:
DAY_OF_YEAR
Example:
os> source=people | eval `DAYOFYEAR(DATE('2020-08-26'))` = DAYOFYEAR(DATE('2020-08-26')) | fields `DAYOFYEAR(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +---------------------------------+ | DAYOFYEAR(DATE('2020-08-26')) | |---------------------------------| | 239 | +---------------------------------+
DAY_OF_YEAR
Usage:
DAY_OF_YEAR(DATE)
returns the day of the year for a date,
in the range 1 to 366.
Argument type: STRING/DATE/TIMESTAMP
Return type: INTEGER
Synonyms:
DAYOFYEAR
Example:
os> source=people | eval `DAY_OF_YEAR(DATE('2020-08-26'))` = DAY_OF_YEAR(DATE('2020-08-26')) | fields `DAY_OF_YEAR(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +-----------------------------------+ | DAY_OF_YEAR(DATE('2020-08-26')) | |-----------------------------------| | 239 | +-----------------------------------+
DAYNAME
Usage: DAYNAME(DATE)
returns the name of the weekday for a date, including Monday, Tuesday,
Wednesday, Thursday, Friday, Saturday and Sunday.
Argument type: STRING/DATE/TIMESTAMP
Return type: STRING
Example:
os> source=people | eval `DAYNAME(DATE('2020-08-26'))` = DAYNAME(DATE('2020-08-26')) | fields `DAYNAME(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +-------------------------------+ | DAYNAME(DATE('2020-08-26')) | |-------------------------------| | Wednesday | +-------------------------------+
FROM_UNIXTIME
Usage: FROM_UNIXTIME
returns a representation of the argument given as a timestamp or character
string value. This function performs a reverse conversion of the
UNIX_TIMESTAMP
function.
If you provide a second argument, FROM_UNIXTIME
uses it to
format the result similar to the DATE_FORMAT
function.
If the timestamp is outside of the range 1970-01-01 00:00:00 to 3001-01-18
23:59:59.999999 (0 to 32536771199.999999 epoch time), the function returns
NULL
.
Argument type: DOUBLE, STRING
Return type map:
DOUBLE -> TIMESTAMP
DOUBLE, STRING -> STRING
Examples:
os> source=people | eval `FROM_UNIXTIME(1220249547)` = FROM_UNIXTIME(1220249547) | fields `FROM_UNIXTIME(1220249547)` fetched rows / total rows = 1/1 +-----------------------------+ | FROM_UNIXTIME(1220249547) | |-----------------------------| | 2008-09-01 06:12:27 | +-----------------------------+ os> source=people | eval `FROM_UNIXTIME(1220249547, 'HH:mm:ss')` = FROM_UNIXTIME(1220249547, 'HH:mm:ss') | fields `FROM_UNIXTIME(1220249547, 'HH:mm:ss')` fetched rows / total rows = 1/1 +-----------------------------------------+ | FROM_UNIXTIME(1220249547, 'HH:mm:ss') | |-----------------------------------------| | 06:12:27 | +-----------------------------------------+
HOUR
Usage: HOUR(TIME)
extracts the hour value for time.
Unlike a standard time of day, the time value in this function can have a
range larger than 23. As a result, the return value of
HOUR(TIME)
can be greater than 23.
Argument type: STRING/TIME/TIMESTAMP
Return type: INTEGER
Synonyms:
HOUR_OF_DAY
Example:
os> source=people | eval `HOUR(TIME('01:02:03'))` = HOUR(TIME('01:02:03')) | fields `HOUR(TIME('01:02:03'))` fetched rows / total rows = 1/1 +--------------------------+ | HOUR(TIME('01:02:03')) | |--------------------------| | 1 | +--------------------------+
HOUR_OF_DAY
Usage:
HOUR_OF_DAY(TIME)
extracts the hour value from the given
time.
Unlike a standard time of day, the time value in this function can have a
range larger than 23. As a result, the return value of
HOUR_OF_DAY(TIME)
can be greater than 23.
Argument type: STRING/TIME/TIMESTAMP
Return type: INTEGER
Synonyms: HOUR
Example:
os> source=people | eval `HOUR_OF_DAY(TIME('01:02:03'))` = HOUR_OF_DAY(TIME('01:02:03')) | fields `HOUR_OF_DAY(TIME('01:02:03'))` fetched rows / total rows = 1/1 +---------------------------------+ | HOUR_OF_DAY(TIME('01:02:03')) | |---------------------------------| | 1 | +---------------------------------+
LAST_DAY
Usage: LAST_DAY
returns the
last day of the month as a DATE value for the given date argument.
Argument type: DATE/STRING/TIMESTAMP/TIME
Return type: DATE
Example:
os> source=people | eval `last_day('2023-02-06')` = last_day('2023-02-06') | fields `last_day('2023-02-06')` fetched rows / total rows = 1/1 +--------------------------+ | last_day('2023-02-06') | |--------------------------| | 2023-02-28 | +--------------------------+
LOCALTIMESTAMP
Usage: LOCALTIMESTAMP()
is a
synonyms for NOW()
.
Example:
> source=people | eval `LOCALTIMESTAMP()` = LOCALTIMESTAMP() | fields `LOCALTIMESTAMP()` fetched rows / total rows = 1/1 +---------------------+ | LOCALTIMESTAMP() | |---------------------| | 2022-08-02 15:54:19 | +---------------------+
LOCALTIME
Usage: LOCALTIME()
is a
synonym for NOW()
.
Example:
> source=people | eval `LOCALTIME()` = LOCALTIME() | fields `LOCALTIME()` fetched rows / total rows = 1/1 +---------------------+ | LOCALTIME() | |---------------------| | 2022-08-02 15:54:19 | +---------------------+
MAKE_DATE
Usage: MAKE_DATE
returns a
date value based on the given year, month, and day values. All arguments are
rounded to integers.
Specifications: 1. MAKE_DATE(INTEGER, INTEGER, INTEGER) -> DATE
Argument type: INTEGER, INTEGER, INTEGER
Return type: DATE
Example:
os> source=people | eval `MAKE_DATE(1945, 5, 9)` = MAKEDATE(1945, 5, 9) | fields `MAKEDATE(1945, 5, 9)` fetched rows / total rows = 1/1 +------------------------+ | MAKEDATE(1945, 5, 9) | |------------------------| | 1945-05-09 | +------------------------+
MINUTE
Usage: MINUTE(TIME)
returns the minute
component of the given time, as an integer in the range 0 to 59.
Argument type: STRING/TIME/TIMESTAMP
Return type: INTEGER
Synonyms: MINUTE_OF_HOUR
Example:
os> source=people | eval `MINUTE(TIME('01:02:03'))` = MINUTE(TIME('01:02:03')) | fields `MINUTE(TIME('01:02:03'))` fetched rows / total rows = 1/1 +----------------------------+ | MINUTE(TIME('01:02:03')) | |----------------------------| | 2 | +----------------------------+
MINUTE_OF_HOUR
Usage:
MINUTE_OF_HOUR(TIME)
returns the minute component of
the given time, as an integer in the range 0 to 59.
Argument type: STRING/TIME/TIMESTAMP
Return type: INTEGER
Synonyms:
MINUTE
Example:
os> source=people | eval `MINUTE_OF_HOUR(TIME('01:02:03'))` = MINUTE_OF_HOUR(TIME('01:02:03')) | fields `MINUTE_OF_HOUR(TIME('01:02:03'))` fetched rows / total rows = 1/1 +------------------------------------+ | MINUTE_OF_HOUR(TIME('01:02:03')) | |------------------------------------| | 2 | +------------------------------------+
MONTH
Usage: MONTH(DATE)
returns the month of the given date as an integer, in the range 1 to 12
(where 1 represents January and 12 represents December).
Argument type: STRING/DATE/TIMESTAMP
Return type: INTEGER
Synonyms:
MONTH_OF_YEAR
Example:
os> source=people | eval `MONTH(DATE('2020-08-26'))` = MONTH(DATE('2020-08-26')) | fields `MONTH(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +-----------------------------+ | MONTH(DATE('2020-08-26')) | |-----------------------------| | 8 | +-----------------------------+
MONTHNAME
Usage: MONTHNAME(DATE)
returns the month of the given date as an integer, in the range 1 to 12
(where 1 represents January and 12 represents December).
Argument type: STRING/DATE/TIMESTAMP
Return type: INTEGER
Synonyms:
MONTH_OF_YEAR
Example:
os> source=people | eval `MONTHNAME(DATE('2020-08-26'))` = MONTHNAME(DATE('2020-08-26')) | fields `MONTHNAME(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +---------------------------------+ | MONTHNAME(DATE('2020-08-26')) | |---------------------------------| | August | +---------------------------------+
MONTH_OF_YEAR
Usage:
MONTH_OF_YEAR(DATE)
returns the month of the given date as
an integer, in the range 1 to 12 (where 1 represents January and 12
represents December).
Argument type: STRING/DATE/TIMESTAMP
Return type: INTEGER
Synonyms:
MONTH
Example:
os> source=people | eval `MONTH_OF_YEAR(DATE('2020-08-26'))` = MONTH_OF_YEAR(DATE('2020-08-26')) | fields `MONTH_OF_YEAR(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +-------------------------------------+ | MONTH_OF_YEAR(DATE('2020-08-26')) | |-------------------------------------| | 8 | +-------------------------------------+
NOW
Usage: NOW
returns the
current date and time as a TIMESTAMP
value in the 'YYYY-MM-DD
hh:mm:ss' format. The value is expressed in the cluster time zone.
Note
NOW()
returns a constant time that indicates when the
statement began to execute. This differs from SYSDATE()
, which
returns the exact time of execution.
Return type: TIMESTAMP
Specification: NOW() -> TIMESTAMP
Example:
os> source=people | eval `value_1` = NOW(), `value_2` = NOW() | fields `value_1`, `value_2` fetched rows / total rows = 1/1 +---------------------+---------------------+ | value_1 | value_2 | |---------------------+---------------------| | 2022-08-02 15:39:05 | 2022-08-02 15:39:05 | +---------------------+---------------------+
QUARTER
Usage: QUARTER(DATE)
returns the quarter of the year for the given date as an integer, in the
range 1 to 4.
Argument type: STRING/DATE/TIMESTAMP
Return type: INTEGER
Example:
os> source=people | eval `QUARTER(DATE('2020-08-26'))` = QUARTER(DATE('2020-08-26')) | fields `QUARTER(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +-------------------------------+ | QUARTER(DATE('2020-08-26')) | |-------------------------------| | 3 | +-------------------------------+
SECOND
Usage: SECOND(TIME)
returns the second component of the given time as an integer, in the range 0
to 59.
Argument type: STRING/TIME/TIMESTAMP
Return type: INTEGER
Synonyms:
SECOND_OF_MINUTE
Example:
os> source=people | eval `SECOND(TIME('01:02:03'))` = SECOND(TIME('01:02:03')) | fields `SECOND(TIME('01:02:03'))` fetched rows / total rows = 1/1 +----------------------------+ | SECOND(TIME('01:02:03')) | |----------------------------| | 3 | +----------------------------+
SECOND_OF_MINUTE
Usage:
SECOND_OF_MINUTE(TIME)
returns the second component of the
given time as an integer, in the range 0 to 59.
Argument type: STRING/TIME/TIMESTAMP
Return type: INTEGER
Synonyms:
SECOND
Example:
os> source=people | eval `SECOND_OF_MINUTE(TIME('01:02:03'))` = SECOND_OF_MINUTE(TIME('01:02:03')) | fields `SECOND_OF_MINUTE(TIME('01:02:03'))` fetched rows / total rows = 1/1 +--------------------------------------+ | SECOND_OF_MINUTE(TIME('01:02:03')) | |--------------------------------------| | 3 | +--------------------------------------+
SUBDATE
Usage: SUBDATE(DATE,
DAYS)
subtracts the second argument (such as DATE
or
DAYS
) from the given date.
Argument type: DATE/TIMESTAMP, LONG
Return type map: (DATE, LONG) -> DATE
Antonyms:
ADDDATE
Example:
os> source=people | eval `'2008-01-02' - 31d` = SUBDATE(DATE('2008-01-02'), 31), `'2020-08-26' - 1` = SUBDATE(DATE('2020-08-26'), 1), `ts '2020-08-26 01:01:01' - 1` = SUBDATE(TIMESTAMP('2020-08-26 01:01:01'), 1) | fields `'2008-01-02' - 31d`, `'2020-08-26' - 1`, `ts '2020-08-26 01:01:01' - 1` fetched rows / total rows = 1/1 +----------------------+--------------------+--------------------------------+ | '2008-01-02' - 31d | '2020-08-26' - 1 | ts '2020-08-26 01:01:01' - 1 | |----------------------+--------------------+--------------------------------| | 2007-12-02 00:00:00 | 2020-08-25 | 2020-08-25 01:01:01 | +----------------------+--------------------+--------------------------------+
SYSDATE
Usage: SYSDATE()
returns the current date and time as a TIMESTAMP
value in the
'YYYY-MM-DD hh:mm:ss.nnnnnn' format.
SYSDATE()
returns the exact time at which it executes. This
differs from NOW(), which returns a constant time indicating when the
statement began to execute.
Optional argument type: INTEGER (0 to 6) - Specifies the number of digits for fractional seconds in the return value.
Return type: TIMESTAMP
Example:
os> source=people | eval `SYSDATE()` = SYSDATE() | fields `SYSDATE()` fetched rows / total rows = 1/1 +----------------------------+ | SYSDATE() | |----------------------------| | 2022-08-02 15:39:05.123456 | +----------------------------+
TIMESTAMP
Usage:
TIMESTAMP(EXPR)
constructs a timestamp type with the input
string expr
as an timestamp.
With a single argument, TIMESTAMP(expr)
constructs a
timestamp from the input. If expr
is a string, it's interpreted
as a timestamp. For non-string arguments, the function casts
expr
to a timestamp using the UTC timezone. When
expr
is a TIME
value, the function applies
today's date before casting.
When used with two arguments, TIMESTAMP(expr1, expr2)
adds
the time expression (expr2
) to the date or timestamp expression
(expr1
) and returns the result as a timestamp value.
Argument type: STRING/DATE/TIME/TIMESTAMP
Return type map:
(STRING/DATE/TIME/TIMESTAMP) -> TIMESTAMP
(STRING/DATE/TIME/TIMESTAMP, STRING/DATE/TIME/TIMESTAMP) -> TIMESTAMP
Example:
os> source=people | eval `TIMESTAMP('2020-08-26 13:49:00')` = TIMESTAMP('2020-08-26 13:49:00'), `TIMESTAMP('2020-08-26 13:49:00', TIME('12:15:42'))` = TIMESTAMP('2020-08-26 13:49:00', TIME('12:15:42')) | fields `TIMESTAMP('2020-08-26 13:49:00')`, `TIMESTAMP('2020-08-26 13:49:00', TIME('12:15:42'))` fetched rows / total rows = 1/1 +------------------------------------+------------------------------------------------------+ | TIMESTAMP('2020-08-26 13:49:00') | TIMESTAMP('2020-08-26 13:49:00', TIME('12:15:42')) | |------------------------------------+------------------------------------------------------| | 2020-08-26 13:49:00 | 2020-08-27 02:04:42 | +------------------------------------+------------------------------------------------------+
UNIX_TIMESTAMP
Usage: UNIX_TIMESTAMP
converts a given date argument to Unix time (seconds since the Epoch, which
began at the start of 1970). If no argument is provided, it returns the
current Unix time.
The date argument can be a DATE
, a TIMESTAMP
string, or a number in one of these formats: YYMMDD
,
YYMMDDhhmmss
, YYYYMMDD
, or
YYYYMMDDhhmmss
. If the argument includes a time component,
it may optionally include fractional seconds.
If the argument is in an invalid format or falls outside the range of
1970-01-01 00:00:00 to 3001-01-18 23:59:59.999999 (0 to 32536771199.999999
in epoch time), the function returns NULL
.
The function accepts DATE
, TIMESTAMP
, or
DOUBLE
as argument types, or no argument. It always returns
a DOUBLE
value representing the Unix timestamp.
For the reverse conversion, you can use the FROM_UNIXTIME function.
Argument type: <NONE>/DOUBLE/DATE/TIMESTAMP
Return type: DOUBLE
Example:
os> source=people | eval `UNIX_TIMESTAMP(double)` = UNIX_TIMESTAMP(20771122143845), `UNIX_TIMESTAMP(timestamp)` = UNIX_TIMESTAMP(TIMESTAMP('1996-11-15 17:05:42')) | fields `UNIX_TIMESTAMP(double)`, `UNIX_TIMESTAMP(timestamp)` fetched rows / total rows = 1/1 +--------------------------+-----------------------------+ | UNIX_TIMESTAMP(double) | UNIX_TIMESTAMP(timestamp) | |--------------------------+-----------------------------| | 3404817525.0 | 848077542.0 | +--------------------------+-----------------------------+
WEEK
Usage: WEEK(DATE)
returns the week number for a given date.
Argument type: DATE/TIMESTAMP/STRING
Return type: INTEGER
Synonyms:
WEEK_OF_YEAR
Example:
os> source=people | eval `WEEK(DATE('2008-02-20'))` = WEEK(DATE('2008-02-20')) | fields `WEEK(DATE('2008-02-20'))` fetched rows / total rows = 1/1 +----------------------------+ | WEEK(DATE('2008-02-20')) | |----------------------------| | 8 | +----------------------------+
WEEKDAY
Usage: WEEKDAY(DATE)
returns the weekday index for date (0 = Monday, 1 = Tuesday, ..., 6 =
Sunday).
It is similar to the dayofweek
function, but returns different indexes for each day.
Argument type: STRING/DATE/TIME/TIMESTAMP
Return type: INTEGER
Example:
os> source=people | eval `weekday(DATE('2020-08-26'))` = weekday(DATE('2020-08-26')) | eval `weekday(DATE('2020-08-27'))` = weekday(DATE('2020-08-27')) | fields `weekday(DATE('2020-08-26'))`, `weekday(DATE('2020-08-27'))` fetched rows / total rows = 1/1 +-------------------------------+-------------------------------+ | weekday(DATE('2020-08-26')) | weekday(DATE('2020-08-27')) | |-------------------------------+-------------------------------| | 2 | 3 | +-------------------------------+-------------------------------+
WEEK_OF_YEAR
Usage:
WEEK_OF_YEAR(DATE)
returns the week number for the given
date.
Argument type: DATE/TIMESTAMP/STRING
Return type: INTEGER
Synonyms: WEEK
Example:
os> source=people | eval `WEEK_OF_YEAR(DATE('2008-02-20'))` = WEEK(DATE('2008-02-20'))| fields `WEEK_OF_YEAR(DATE('2008-02-20'))` fetched rows / total rows = 1/1 +------------------------------------+ | WEEK_OF_YEAR(DATE('2008-02-20')) | |------------------------------------| | 8 | +------------------------------------+
YEAR
Usage: YEAR(DATE)
returns the year for date, in the range 1000 to 9999, or 0 for the "zero"
date.
Argument type: STRING/DATE/TIMESTAMP
Return type: INTEGER
Example:
os> source=people | eval `YEAR(DATE('2020-08-26'))` = YEAR(DATE('2020-08-26')) | fields `YEAR(DATE('2020-08-26'))` fetched rows / total rows = 1/1 +----------------------------+ | YEAR(DATE('2020-08-26')) | |----------------------------| | 2020 | +----------------------------+
DATE_ADD
Usage: DATE_ADD(date,
INTERVAL expr unit)
adds the specified interval to the given
date.
Argument type: DATE, INTERVAL
Return type: DATE
Antonyms:
DATE_SUB
Example:
os> source=people | eval `'2020-08-26' + 1d` = DATE_ADD(DATE('2020-08-26'), INTERVAL 1 DAY) | fields `'2020-08-26' + 1d` fetched rows / total rows = 1/1 +---------------------+ | '2020-08-26' + 1d | |---------------------| | 2020-08-27 | +---------------------+
DATE_SUB
Usage: DATE_SUB(date,
INTERVAL expr unit)
subtracts the interval expr from date.
Argument type: DATE, INTERVAL
Return type: DATE
Antonyms:
DATE_ADD
Example:
os> source=people | eval `'2008-01-02' - 31d` = DATE_SUB(DATE('2008-01-02'), INTERVAL 31 DAY) | fields `'2008-01-02' - 31d` fetched rows / total rows = 1/1 +---------------------+ | '2008-01-02' - 31d | |---------------------| | 2007-12-02 | +---------------------+
TIMESTAMPADD
Usage: Returns a
TIMESTAMP
value after adding a specified time interval to a
given date.
Arguments:
-
interval: INTERVAL (SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR)
-
integer: INTEGER
-
date: DATE, TIMESTAMP, or STRING
If you provide a STRING
as the date argument, format it as a
valid TIMESTAMP
. The function automatically converts a
DATE
argument to a TIMESTAMP
.
Examples:
os> source=people | eval `TIMESTAMPADD(DAY, 17, '2000-01-01 00:00:00')` = TIMESTAMPADD(DAY, 17, '2000-01-01 00:00:00') | eval `TIMESTAMPADD(QUARTER, -1, '2000-01-01 00:00:00')` = TIMESTAMPADD(QUARTER, -1, '2000-01-01 00:00:00') | fields `TIMESTAMPADD(DAY, 17, '2000-01-01 00:00:00')`, `TIMESTAMPADD(QUARTER, -1, '2000-01-01 00:00:00')` fetched rows / total rows = 1/1 +----------------------------------------------+--------------------------------------------------+ | TIMESTAMPADD(DAY, 17, '2000-01-01 00:00:00') | TIMESTAMPADD(QUARTER, -1, '2000-01-01 00:00:00') | |----------------------------------------------+--------------------------------------------------| | 2000-01-18 00:00:00 | 1999-10-01 00:00:00 | +----------------------------------------------+--------------------------------------------------+
TIMESTAMPDIFF
Usage:
TIMESTAMPDIFF(interval, start, end)
returns the difference
between the start and end date/times in specified interval units.
Arguments:
-
interval: INTERVAL (SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR)
-
start: DATE, TIMESTAMP, or STRING
-
end: DATE, TIMESTAMP, or STRING
The function automatically converts arguments to TIMESTAMP
when appropriate. Format STRING
arguments as valid
TIMESTAMP
s.
Examples:
os> source=people | eval `TIMESTAMPDIFF(YEAR, '1997-01-01 00:00:00', '2001-03-06 00:00:00')` = TIMESTAMPDIFF(YEAR, '1997-01-01 00:00:00', '2001-03-06 00:00:00') | eval `TIMESTAMPDIFF(SECOND, timestamp('1997-01-01 00:00:23'), timestamp('1997-01-01 00:00:00'))` = TIMESTAMPDIFF(SECOND, timestamp('1997-01-01 00:00:23'), timestamp('1997-01-01 00:00:00')) | fields `TIMESTAMPDIFF(YEAR, '1997-01-01 00:00:00', '2001-03-06 00:00:00')`, `TIMESTAMPDIFF(SECOND, timestamp('1997-01-01 00:00:23'), timestamp('1997-01-01 00:00:00'))` fetched rows / total rows = 1/1 +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | TIMESTAMPDIFF(YEAR, '1997-01-01 00:00:00', '2001-03-06 00:00:00') | TIMESTAMPDIFF(SECOND, timestamp('1997-01-01 00:00:23'), timestamp('1997-01-01 00:00:00')) | |-------------------------------------------------------------------+-------------------------------------------------------------------------------------------| | 4 | -23 | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------+
UTC_TIMESTAMP
Usage: UTC_TIMESTAMP
returns the current UTC timestamp as a value in 'YYYY-MM-DD
hh:mm:ss'.
Return type: TIMESTAMP
Specification: UTC_TIMESTAMP() -> TIMESTAMP
Example:
> source=people | eval `UTC_TIMESTAMP()` = UTC_TIMESTAMP() | fields `UTC_TIMESTAMP()` fetched rows / total rows = 1/1 +---------------------+ | UTC_TIMESTAMP() | |---------------------| | 2022-10-03 17:54:28 | +---------------------+
CURRENT_TIMEZONE
Usage:
CURRENT_TIMEZONE
returns the current local timezone.
Return type: STRING
Example:
> source=people | eval `CURRENT_TIMEZONE()` = CURRENT_TIMEZONE() | fields `CURRENT_TIMEZONE()` fetched rows / total rows = 1/1 +------------------------+ | CURRENT_TIMEZONE() | |------------------------| | America/Chicago | +------------------------+