要获得与亚马逊 Timestream 类似的功能 LiveAnalytics,可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间,以实现实时分析。点击此处了解更多信息。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
日期/时间函数
注意
的时间流 LiveAnalytics 不支持负时间值。任何导致负时间的操作均会导致错误。
timestream LiveAnalytics 使用 UTC 时区作为日期和时间。Timestream 支持以下日期和时间函数。
通用和转换
Timestream for LiveAnalytics 支持以下日期和时间的常规函数和转换函数。
| 函数 | 输出数据类型 | 说明 |
|---|---|---|
|
current_date |
date |
返回以 UTC 为单位的当前日期。未使用括号。
示例结果: 注意这也是一个保留关键字。有关保留关键字的列表,请参阅 保留关键字。 |
|
current_time |
时间 |
返回以 UTC 为单位的当前时间。未使用括号。
示例结果: 注意这也是一个保留关键字。有关保留关键字的列表,请参阅 保留关键字。 |
|
current_timestamp or now() |
timestamp |
返回以 UTC 为单位的当前时间戳。
示例结果: 注意这也是一个保留关键字。有关保留关键字的列表,请参阅 保留关键字。 |
|
current_timezone() |
varchar 该值将是“UTC”。 |
Timestream 使用 UTC 时区作为日期和时间标准。
示例结果: |
|
date(varchar(x)), date(timestamp) |
date |
示例结果: |
|
last_day_of_month(timestamp), last_day_of_month(date) |
date |
示例结果: |
|
from_iso8601_timestamp(string) |
timestamp |
将 ISO 8601 时间戳解析为内部时间戳格式。
示例结果: |
|
from_iso8601_date(string) |
date |
将 ISO 8601 日期字符串解析为指定日期 UTC 00:00:00 的内部时间戳格式。
示例结果: |
|
to_iso8601(timestamp), to_iso8601(date) |
varchar |
返回输入的 ISO 8601 格式字符串。
示例结果: |
|
from_milliseconds(bigint) |
timestamp |
示例结果: |
|
from_nanoseconds(bigint) |
timestamp |
示例结果: |
|
from_unixtime(double) |
timestamp |
返回与给定 unixtime 相对应的时间戳。
示例结果: |
|
localtime |
时间 |
返回以 UTC 为单位的当前时间。未使用括号。
示例结果: 注意这也是一个保留关键字。有关保留关键字的列表,请参阅 保留关键字。 |
|
localtimestamp |
timestamp |
返回以 UTC 为单位的当前时间戳。未使用括号。
示例结果: 注意这也是一个保留关键字。有关保留关键字的列表,请参阅 保留关键字。 |
|
to_milliseconds(interval day to second), to_milliseconds(timestamp) |
bigint |
示例结果:
示例结果: |
|
to_nanoseconds(interval day to second), to_nanoseconds(timestamp) |
bigint |
示例结果:
示例结果: |
|
to_unixtime(timestamp) |
double |
返回给定时间戳的 unixtime。
示例结果: |
|
date_trunc(unit, timestamp) |
timestamp |
返回截断为指定单位的时间戳,单位为 [秒、分钟、小时、日、周、月、季度、年] 其中之一。
示例结果: |
间隔和持续时间
Timestream for LiveAnalytics 支持以下日期和时间间隔和持续时间函数。
| 函数 | 输出数据类型 | 说明 |
|---|---|---|
|
date_add(unit, bigint, date), date_add(unit, bigint, time), date_add(varchar(x), bigint, timestamp) |
timestamp |
添加 bigint,单位为 [秒、分钟、小时、日、周、月、季度、年] 其中之一。
示例结果: |
|
date_diff(unit, date, date) , date_diff(unit, time, time) , date_diff(unit, timestamp, timestamp) |
bigint |
返回差值,其中单位为 [秒、分钟、小时、日、周、月、季度、年] 之一。
示例结果: |
|
parse_duration(string) |
interval |
解析输入字符串,以返回等效的
示例结果:
示例结果: |
bin(timestamp, interval) |
timestamp |
将参数 此返回值的含义可能并不明显。该值通过整数运算计算得出:首先将时间戳整数除以间隔整数,然后将结果乘以间隔整数。 请注意,时间戳将 UTC 时间点指定为自 POSIX epoch(1970 年 1 月 1 日)起经过的若干个零点几秒,因此其返回值很少与日历时间单位完全对应。例如,如果指定 30 天间隔,则自 epoch 以来所有天数都将划分为 30 天增量,并返回最近 30 天增量的起始点,该起始点与日历月份无关。 下面是一些示例:
|
|
ago(interval) |
timestamp |
返回与 current_timestamp
示例结果: |
|
间隔字面值,例如 1h、1d 和 30m |
interval |
间隔字面值是 parse_duration(string) 的简易形式。例如, |
一些间隔字面值可作为 parse_duration 的简写形式。例如,parse_duration('1day')、1day、parse_duration('1d') 和 1d 均返回 1
00:00:00.000000000,其中类型为 interval day to second。允许给定格式 parse_duration 中存在空格。例如,parse_duration('1day') 也返回 00:00:00.000000000。但 1 day 不是间隔字面值。
与 interval day to second 相关的单位包括:ns(纳秒)、us(微秒)、ms(毫秒)、s(秒)、m(分钟)、h(小时)、d(天)。
还有 interval year to month。与间隔年到月相关的单位包括:y(年)、月。例如,SELECT 1year 返回 1-0。SELECT 12month 也返回 1-0。SELECT 8month 返回 0-8。
尽管 quarter 的单位也可用于某些函数,例如 date_trunc 和 date_add,但 quarter 不能作为间隔字面值使用。
格式化与解析
Timestream for LiveAnalytics 支持以下日期和时间的格式化和解析函数。
| 函数 | 输出数据类型 | 说明 |
|---|---|---|
|
date_format(timestamp, varchar(x)) |
varchar |
有关此函数使用的格式说明符的更多信息,请参见 # https://trino.io/docs/current/functions/datetime.html mysql-date-functions
示例结果: |
|
date_parse(varchar(x), varchar(y)) |
timestamp |
有关此函数使用的格式说明符的更多信息,请参见 # https://trino.io/docs/current/functions/datetime.html mysql-date-functions
示例结果: |
|
format_datetime(timestamp, varchar(x)) |
varchar |
有关此函数使用的格式字符串的更多信息,请参阅 http://joda-time.sourceforge。 net/apidocs/org/joda/time/format/DateTimeFormat.html
示例结果: |
|
parse_datetime(varchar(x), varchar(y)) |
timestamp |
有关此函数使用的格式字符串的更多信息,请参阅 http://joda-time.sourceforge。 net/apidocs/org/joda/time/format/DateTimeFormat.html
示例结果: |
提取
Timestream for LiveAnalytics 支持以下日期和时间提取函数。提取函数是其余便捷函数的基础。
| 函数 | 输出数据类型 | 说明 |
|---|---|---|
|
extract |
bigint |
从时间戳中提取字段,字段为 [YEAR、QUARTER、MONTH、WEEK、DAY、DAY_OF_MONTH、DAY_OF_WEEK、DOW、DAY_OF_YEAR、DOY、YEAR_OF_WEEK、YOW、HOUR、MINUTE、SECOND] 其中之一。
示例结果: |
|
day(timestamp), day(date), day(interval day to second) |
bigint |
示例结果: |
|
day_of_month(timestamp), day_of_month(date), day_of_month(interval day to second) |
bigint |
示例结果: |
|
day_of_week(timestamp), day_of_week(date) |
bigint |
示例结果: |
|
day_of_year(timestamp), day_of_year(date) |
bigint |
示例结果: |
|
dow(timestamp), dow(date) |
bigint |
day_of_week 的别名 |
|
doy(timestamp), doy(date) |
bigint |
day_of_year 的别名 |
|
hour(timestamp), hour(time), hour(interval day to second) |
bigint |
示例结果: |
|
millisecond(timestamp), millisecond(time), millisecond(interval day to second) |
bigint |
示例结果: |
|
minute(timestamp), minute(time), minute(interval day to second) |
bigint |
示例结果: |
|
month(timestamp), month(date), month(interval year to month) |
bigint |
示例结果: |
|
nanosecond(timestamp), nanosecond(time), nanosecond(interval day to second) |
bigint |
示例结果: |
|
quarter(timestamp), quarter(date) |
bigint |
示例结果: |
|
second(timestamp), second(time), second(interval day to second) |
bigint |
示例结果: |
|
week(timestamp), week(date) |
bigint |
示例结果: |
|
week_of_year(timestamp), week_of_year(date) |
bigint |
week 的别名 |
|
year(timestamp), year(date), year(interval year to month) |
bigint |
示例结果: |
|
year_of_week(timestamp), year_of_week(date) |
bigint |
示例结果: |
|
yow(timestamp), yow(date) |
bigint |
year_of_week 的别名 |