Datetime Functions(日期时间函数)

文章目录


原文:Apache Spark SQL --- Datetime Functions

本分类按照 Spark SQL 官方目录函数顺序整理,共 82 个函数。


1、add_months

语法

sql 复制代码
add_months(start_date, num_months)

说明

返回在起始日期基础上增加指定月份数后的日期。

示例

sql 复制代码
> SELECT add_months('2016-08-31', 1);
  2016-09-30

引入版本: 1.5.0

官方条目

2、convert_timezone

语法

sql 复制代码
convert_timezone([sourceTz, ]targetTz, sourceTs)

说明

将无时区时间戳从源时区转换到目标时区;省略源时区时使用当前会话时区。

示例

sql 复制代码
> SELECT convert_timezone('Europe/Brussels', 'America/Los_Angeles', timestamp_ntz'2021-12-06 00:00:00');
  2021-12-05 15:00:00

引入版本: 3.4.0

官方条目

3、curdate

语法

sql 复制代码
curdate()

说明

返回查询求值开始时的当前日期;同一查询中的调用返回相同值。

示例

sql 复制代码
> SELECT curdate();
  2022-09-06

引入版本: 3.4.0

官方条目

4、current_date

语法

sql 复制代码
current_date()

说明

返回查询求值开始时的当前日期;同一查询中的调用返回相同值。

示例

sql 复制代码
> SELECT current_date();
  2020-04-25

引入版本: 1.5.0

官方条目

5、current_time

语法

sql 复制代码
current_time([precision])

说明

返回查询开始时的当前时间,可选参数 precision 指定秒的小数位数(0 至 6,默认为 6)。

示例

sql 复制代码
> SELECT current_time();
  15:49:11.914120

引入版本: 4.1.0

官方条目

6、current_timestamp

语法

sql 复制代码
current_timestamp()

说明

返回查询求值开始时的当前时间戳;同一查询中的调用返回相同值。

示例

sql 复制代码
> SELECT current_timestamp();
  2020-04-25 15:49:11.914

引入版本: 1.5.0

官方条目

7、current_timezone

语法

sql 复制代码
current_timezone()

说明

返回当前会话的本地时区。

示例

sql 复制代码
> SELECT current_timezone();
  Asia/Shanghai

引入版本: 3.1.0

官方条目

8、date_add

语法

sql 复制代码
date_add(start_date, num_days)

说明

返回起始日期之后指定天数的日期。

示例

sql 复制代码
> SELECT date_add('2016-07-30', 1);
  2016-07-31

引入版本: 1.5.0

官方条目

9、date_diff

语法

sql 复制代码
date_diff(endDate, startDate)

说明

返回从起始日期到结束日期的天数差。

示例

sql 复制代码
> SELECT date_diff('2009-07-31', '2009-07-30');
  1

引入版本: 3.4.0

官方条目

10、date_format

语法

sql 复制代码
date_format(timestamp, fmt)

说明

按照给定日期时间格式将时间戳转换为字符串。

示例

sql 复制代码
> SELECT date_format('2016-04-08', 'y');
  2016

引入版本: 1.5.0

官方条目

11、date_from_unix_date

语法

sql 复制代码
date_from_unix_date(days)

说明

根据距 1970-01-01 的天数创建日期。

示例

sql 复制代码
> SELECT date_from_unix_date(1);
  1970-01-02

引入版本: 3.1.0

官方条目

12、date_part

语法

sql 复制代码
date_part(field, source)

说明

从日期、时间戳或时间间隔中提取指定部分。

示例

sql 复制代码
> SELECT date_part('YEAR', TIMESTAMP '2019-08-12 01:00:00.123456');
  2019

引入版本: 3.0.0

官方条目

13、date_sub

语法

sql 复制代码
date_sub(start_date, num_days)

说明

返回起始日期之前指定天数的日期。

示例

sql 复制代码
> SELECT date_sub('2016-07-30', 1);
  2016-07-29

引入版本: 1.5.0

官方条目

14、date_trunc

语法

sql 复制代码
date_trunc(fmt, ts)

说明

按照指定时间单位截断时间戳。

示例

sql 复制代码
> SELECT date_trunc('YEAR', '2015-03-05T09:32:05.359');
  2015-01-01 00:00:00

引入版本: 2.3.0

官方条目

15、dateadd

语法

sql 复制代码
dateadd(start_date, num_days)

说明

返回起始日期之后指定天数的日期。

示例

sql 复制代码
> SELECT dateadd('2016-07-30', 1);
  2016-07-31

引入版本: 3.4.0

官方条目

16、datediff

语法

sql 复制代码
datediff(endDate, startDate)

说明

返回从起始日期到结束日期的天数差。

示例

sql 复制代码
> SELECT datediff('2009-07-31', '2009-07-30');
  1

引入版本: 1.5.0

官方条目

17、datepart

语法

sql 复制代码
datepart(field, source)

说明

从日期、时间戳或时间间隔中提取指定部分。

示例

sql 复制代码
> SELECT datepart('YEAR', TIMESTAMP '2019-08-12 01:00:00.123456');
  2019

引入版本: 3.4.0

官方条目

18、day

语法

sql 复制代码
day(date)

说明

返回日期或时间戳中的月份日期部分。

示例

sql 复制代码
> SELECT day('2009-07-30');
  30

引入版本: 1.5.0

官方条目

19、dayname

语法

sql 复制代码
dayname(date)

说明

返回给定日期的三个字母英文星期名称缩写。

示例

sql 复制代码
> SELECT dayname(DATE('2008-02-20'));
  Wed

引入版本: 4.0.0

官方条目

20、dayofmonth

语法

sql 复制代码
dayofmonth(date)

说明

返回日期或时间戳中的月份日期部分。

示例

sql 复制代码
> SELECT dayofmonth('2009-07-30');
  30

引入版本: 1.5.0

官方条目

21、dayofweek

语法

sql 复制代码
dayofweek(date)

说明

返回日期对应的星期序号,周日为 1,周六为 7。

示例

sql 复制代码
> SELECT dayofweek('2009-07-30');
  5

引入版本: 2.3.0

官方条目

22、dayofyear

语法

sql 复制代码
dayofyear(date)

说明

返回日期在一年中的第几天。

示例

sql 复制代码
> SELECT dayofyear('2016-04-09');
  100

引入版本: 1.5.0

官方条目

23、extract

语法

sql 复制代码
extract(field FROM source)

说明

提取日期、时间戳、时间或时间间隔中指定的部分。

示例

sql 复制代码
> SELECT extract(YEAR FROM TIMESTAMP '2019-08-12 01:00:00.123456');
  2019

引入版本: 3.0.0

官方条目

24、from_unixtime

语法

sql 复制代码
from_unixtime(unix_time[, fmt])

说明

将 Unix 时间戳按照指定格式转换为字符串。

示例

sql 复制代码
> SELECT from_unixtime(0, 'yyyy-MM-dd HH:mm:ss');
  1969-12-31 16:00:00

引入版本: 1.5.0

官方条目

25、from_utc_timestamp

语法

sql 复制代码
from_utc_timestamp(timestamp, timezone)

说明

将指定时间戳视为 UTC 时间并转换到给定时区。

示例

sql 复制代码
> SELECT from_utc_timestamp('2016-08-31', 'Asia/Seoul');
  2016-08-31 09:00:00

引入版本: 1.5.0

官方条目

26、hour

语法

sql 复制代码
hour(expr)

说明

返回时间或时间戳中的小时部分。

示例

sql 复制代码
> SELECT hour('2018-02-14 12:58:59');
  12

引入版本: 1.5.0

官方条目

27、last_day

语法

sql 复制代码
last_day(date)

说明

返回指定日期所在月份的最后一天。

示例

sql 复制代码
> SELECT last_day('2009-01-12');
  2009-01-31

引入版本: 1.5.0

官方条目

28、localtimestamp

语法

sql 复制代码
localtimestamp()

说明

返回查询求值开始时不带时区的当前本地时间戳。

示例

sql 复制代码
> SELECT localtimestamp();
  2020-04-25 15:49:11.914

引入版本: 3.4.0

官方条目

29、make_date

语法

sql 复制代码
make_date(year, month, day)

说明

由年、月、日构造日期;无效输入在 ANSI 设置下可能抛出错误。

示例

sql 复制代码
> SELECT make_date(2013, 7, 15);
  2013-07-15

引入版本: 3.0.0

官方条目

30、make_dt_interval

语法

sql 复制代码
make_dt_interval([days[, hours[, mins[, secs]]]])

说明

根据日、小时、分钟和秒构造日时间隔。

示例

sql 复制代码
> SELECT make_dt_interval(1, 12, 30, 01.001001);
  1 12:30:01.001001000

引入版本: 3.2.0

官方条目

31、make_interval

语法

sql 复制代码
make_interval([years[, months[, weeks[, days[, hours[, mins[, secs]]]]]]])

说明

根据年、月、周、日、小时、分钟和秒构造时间间隔。

示例

sql 复制代码
> SELECT make_interval(100, 11, 1, 1, 12, 30, 01.001001);
  100 years 11 months 8 days 12 hours 30 minutes 1.001001 seconds

引入版本: 3.0.0

官方条目

32、make_time

语法

sql 复制代码
make_time(hour, minute, second)

说明

根据小时、分钟和秒构造时间;无效输入会报错。

示例

sql 复制代码
> SELECT make_time(6, 30, 45.887);
  06:30:45.887

引入版本: 4.1.0

官方条目

33、make_timestamp

语法

sql 复制代码
make_timestamp(year, month, day, hour, min, sec[, timezone])

说明

根据日期时间各字段及可选时区构造时间戳。

示例

sql 复制代码
> SELECT make_timestamp(2014, 12, 28, 6, 30, 45.887);
  2014-12-28 06:30:45.887

引入版本: 3.0.0

官方条目

34、make_timestamp_ltz

语法

sql 复制代码
make_timestamp_ltz(year, month, day, hour, min, sec[, timezone])

说明

根据日期时间字段及可选时区构造带本地时区的时间戳。

示例

sql 复制代码
> SELECT make_timestamp_ltz(2014, 12, 28, 6, 30, 45.887);
  2014-12-28 06:30:45.887

引入版本: 3.4.0

官方条目

35、make_timestamp_ntz

语法

sql 复制代码
make_timestamp_ntz(year, month, day, hour, min, sec)

说明

根据日期时间字段构造不带时区的本地日期时间。

示例

sql 复制代码
> SELECT make_timestamp_ntz(2014, 12, 28, 6, 30, 45.887);
  2014-12-28 06:30:45.887

引入版本: 3.4.0

官方条目

36、make_ym_interval

语法

sql 复制代码
make_ym_interval([years[, months]])

说明

根据年数和月数构造年月间隔。

示例

sql 复制代码
> SELECT make_ym_interval(1, 2);
  1-2

引入版本: 3.2.0

官方条目

37、minute

语法

sql 复制代码
minute(expr)

说明

返回时间或时间戳的分钟部分。

示例

sql 复制代码
> SELECT minute('2009-07-30 12:58:59');
  58

引入版本: 1.5.0

官方条目

38、month

语法

sql 复制代码
month(date)

说明

返回日期的月份部分。

示例

sql 复制代码
> SELECT month('2016-07-30');
  7

引入版本: 1.5.0

官方条目

39、monthname

语法

sql 复制代码
monthname(date)

说明

返回日期的三个字母英文月份缩写。

示例

sql 复制代码
> SELECT monthname('2008-02-20');
  Feb

引入版本: 4.0.0

官方条目

40、months_between

语法

sql 复制代码
months_between(timestamp1, timestamp2[, roundOff])

说明

返回两个日期或时间戳之间的月份数,结果可为小数。

示例

sql 复制代码
> SELECT months_between('1997-02-28 10:30:00', '1996-10-30');
  3.94959677

引入版本: 1.5.0

官方条目

41、next_day

语法

sql 复制代码
next_day(start_date, day_of_week)

说明

返回指定日期之后第一个与给定星期名称相符的日期。

示例

sql 复制代码
> SELECT next_day('2015-01-14', 'TU');
  2015-01-20

引入版本: 1.5.0

官方条目

42、now

语法

sql 复制代码
now()

说明

返回查询求值开始时的当前时间戳。

示例

sql 复制代码
> SELECT now();
  2020-04-25 15:49:11.914

引入版本: 1.6.0

官方条目

43、quarter

语法

sql 复制代码
quarter(date)

说明

返回日期位于第几个季度。

示例

sql 复制代码
> SELECT quarter('2016-08-31');
  3

引入版本: 1.5.0

官方条目

44、second

语法

sql 复制代码
second(expr)

说明

返回时间或时间戳的秒数部分。

示例

sql 复制代码
> SELECT second('2018-02-14 12:58:59');
  59

引入版本: 1.5.0

官方条目

45、session_window

语法

sql 复制代码
session_window(time_column, gap_duration)

说明

依据时间戳列和会话间隔生成会话窗口。

示例

sql 复制代码
> SELECT a, session_window.start, session_window.end, count(*) as cnt FROM VALUES ('A1', '2021-01-01 00:00:00'), ('A1', '2021-01-01 00:04:30'), ('A1', '2021-01-01 00:10:00'), ('A2', '2021-01-01 00:01:00') AS tab(a, b) GROUP by a, session_window(b, '5 minutes') ORDER BY a, start;
  A1    2021-01-01 00:00:00 2021-01-01 00:09:30 2
  A1    2021-01-01 00:10:00 2021-01-01 00:15:00 1
  A2    2021-01-01 00:01:00 2021-01-01 00:06:00 1

引入版本: 3.2.0

官方条目

46、time_bucket

语法

sql 复制代码
time_bucket(bucketSize, ts[, origin])

说明

按照给定时间间隔与可选的对齐起点,返回时间戳所在时间桶的起始时间。

示例

sql 复制代码
> SELECT time_bucket(INTERVAL '15' MINUTE, TIMESTAMP '2024-01-01 11:27:00', TIMESTAMP '1970-01-01 00:00:00');
  2024-01-01 11:15:00

引入版本: 4.2.0

官方条目

47、time_diff

语法

sql 复制代码
time_diff(unit, start, end)

说明

按照指定时间单位计算两个 TIME 值的差值。

示例

sql 复制代码
> SELECT time_diff('HOUR', TIME'20:30:29', TIME'21:30:28');
  0

引入版本: 4.1.0

官方条目

48、time_from_micros

语法

sql 复制代码
time_from_micros(micros)

说明

根据自午夜起的微秒数创建 TIME 值。

示例

sql 复制代码
> SELECT time_from_micros(0);
  00:00:00

引入版本: 4.2.0

官方条目

49、time_from_millis

语法

sql 复制代码
time_from_millis(millis)

说明

根据自午夜起的毫秒数创建 TIME 值。

示例

sql 复制代码
> SELECT time_from_millis(0);
  00:00:00

引入版本: 4.2.0

官方条目

50、time_from_seconds

语法

sql 复制代码
time_from_seconds(seconds)

说明

根据自午夜起的秒数创建 TIME 值。

示例

sql 复制代码
> SELECT time_from_seconds(0);
  00:00:00

引入版本: 4.2.0

官方条目

51、time_to_micros

语法

sql 复制代码
time_to_micros(time)

说明

返回 TIME 值距午夜的微秒数。

示例

sql 复制代码
> SELECT time_to_micros(TIME'00:00:00');
  0

引入版本: 4.2.0

官方条目

52、time_to_millis

语法

sql 复制代码
time_to_millis(time)

说明

返回 TIME 值距午夜的毫秒数。

示例

sql 复制代码
> SELECT time_to_millis(TIME'00:00:00');
  0

引入版本: 4.2.0

官方条目

53、time_to_seconds

语法

sql 复制代码
time_to_seconds(time)

说明

返回 TIME 值距午夜的秒数。

示例

sql 复制代码
> SELECT time_to_seconds(TIME'00:00:00');
  0.000000

引入版本: 4.2.0

官方条目

54、time_trunc

语法

sql 复制代码
time_trunc(unit, time)

说明

将 TIME 值截断到指定时间单位。

示例

sql 复制代码
> SELECT time_trunc('HOUR', TIME'09:32:05.359');
  09:00:00

引入版本: 4.1.0

官方条目

55、timestamp_micros

语法

sql 复制代码
timestamp_micros(microseconds)

说明

根据 UTC 纪元以来的微秒数创建时间戳。

示例

sql 复制代码
> SELECT timestamp_micros(1230219000123123);
  2008-12-25 07:30:00.123123

引入版本: 3.1.0

官方条目

56、timestamp_millis

语法

sql 复制代码
timestamp_millis(milliseconds)

说明

根据 UTC 纪元以来的毫秒数创建时间戳。

示例

sql 复制代码
> SELECT timestamp_millis(1230219000123);
  2008-12-25 07:30:00.123

引入版本: 3.1.0

官方条目

57、timestamp_seconds

语法

sql 复制代码
timestamp_seconds(seconds)

说明

根据 UTC 纪元以来的秒数创建时间戳,支持小数。

示例

sql 复制代码
> SELECT timestamp_seconds(1230219000);
  2008-12-25 07:30:00

引入版本: 3.1.0

官方条目

58、to_date

语法

sql 复制代码
to_date(date_str[, fmt])

说明

按给定格式将字符串解析为日期,格式省略时遵循日期类型转换规则。

示例

sql 复制代码
> SELECT to_date('2009-07-30 04:17:52');
  2009-07-30

引入版本: 1.5.0

官方条目

59、to_time

语法

sql 复制代码
to_time(str[, format])

说明

按给定格式将字符串解析为 TIME 值;格式不合法或解析失败时抛出错误。

示例

sql 复制代码
> SELECT to_time('00:12:00');
  00:12:00

引入版本: 4.1.0

官方条目

60、to_timestamp

语法

sql 复制代码
to_timestamp(timestamp_str[, fmt])

说明

将字符串按格式解析为时间戳,结果类型受 spark.sql.timestampType 设置影响。

示例

sql 复制代码
> SELECT to_timestamp('2016-12-31 00:12:00');
  2016-12-31 00:12:00

引入版本: 2.2.0

官方条目

61、to_timestamp_ltz

语法

sql 复制代码
to_timestamp_ltz(timestamp_str[, fmt])

说明

将字符串解析为带本地时区的时间戳。

示例

sql 复制代码
> SELECT to_timestamp_ltz('2016-12-31 00:12:00');
  2016-12-31 00:12:00

引入版本: 3.4.0

官方条目

62、to_timestamp_ntz

语法

sql 复制代码
to_timestamp_ntz(timestamp_str[, fmt])

说明

将字符串解析为不带时区的时间戳。

示例

sql 复制代码
> SELECT to_timestamp_ntz('2016-12-31 00:12:00');
  2016-12-31 00:12:00

引入版本: 3.4.0

官方条目

63、to_unix_timestamp

语法

sql 复制代码
to_unix_timestamp(timeExp[, fmt])

说明

返回给定日期、时间或字符串对应的 Unix 时间戳。

示例

sql 复制代码
> SELECT to_unix_timestamp('2016-04-08', 'yyyy-MM-dd');
  1460098800

引入版本: 1.6.0

官方条目

64、to_utc_timestamp

语法

sql 复制代码
to_utc_timestamp(timestamp, timezone)

说明

将指定时间戳视为给定时区的本地时间并转换为 UTC 时间。

示例

sql 复制代码
> SELECT to_utc_timestamp('2016-08-31', 'Asia/Seoul');
  2016-08-30 15:00:00

引入版本: 1.5.0

官方条目

65、trunc

语法

sql 复制代码
trunc(date, fmt)

说明

按照指定的日期单位截断日期。

示例

sql 复制代码
> SELECT trunc('2019-08-04', 'week');
  2019-07-29

引入版本: 1.5.0

官方条目

66、try_make_interval

语法

sql 复制代码
try_make_interval([years[, months[, weeks[, days[, hours[, mins[, secs]]]]]]])

说明

与 make_interval 执行相同运算,但发生溢出时返回 NULL。

示例

sql 复制代码
> SELECT try_make_interval(100, 11, 1, 1, 12, 30, 01.001001);
  100 years 11 months 8 days 12 hours 30 minutes 1.001001 seconds

引入版本: 4.0.0

官方条目

67、try_make_timestamp

语法

sql 复制代码
try_make_timestamp(year, month, day, hour, min, sec[, timezone])

说明

尝试根据各字段创建时间戳,输入不合法时返回 NULL。

示例

sql 复制代码
> SELECT try_make_timestamp(2014, 12, 28, 6, 30, 45.887);
  2014-12-28 06:30:45.887

引入版本: 4.0.0

官方条目

68、try_make_timestamp_ltz

语法

sql 复制代码
try_make_timestamp_ltz(year, month, day, hour, min, sec[, timezone])

说明

尝试创建本地时区时间戳,输入不合法时返回 NULL。

示例

sql 复制代码
> SELECT try_make_timestamp_ltz(2014, 12, 28, 6, 30, 45.887);
  2014-12-28 06:30:45.887

引入版本: 4.0.0

官方条目

69、try_make_timestamp_ntz

语法

sql 复制代码
try_make_timestamp_ntz(year, month, day, hour, min, sec)

说明

尝试创建不带时区的本地时间戳,输入不合法时返回 NULL。

示例

sql 复制代码
> SELECT try_make_timestamp_ntz(2014, 12, 28, 6, 30, 45.887);
  2014-12-28 06:30:45.887

引入版本: 4.0.0

官方条目

70、try_to_date

语法

sql 复制代码
try_to_date(date_str[, fmt])

说明

将字符串解析为日期,无论是否启用 ANSI SQL 模式,输入不合法时都返回 NULL。

示例

sql 复制代码
> SELECT try_to_date('2016-12-31');
  2016-12-31

引入版本: 4.0.0

官方条目

71、try_to_time

语法

sql 复制代码
try_to_time(str[, format])

说明

尝试将字符串解析为时间,解析失败时返回 NULL。

示例

sql 复制代码
> SELECT try_to_time('00:12:00.001');
  00:12:00.001

引入版本: 4.1.0

官方条目

72、try_to_timestamp

语法

sql 复制代码
try_to_timestamp(timestamp_str[, fmt])

说明

将字符串解析为时间戳;输入不合法时返回 NULL。

示例

sql 复制代码
> SELECT try_to_timestamp('2016-12-31 00:12:00');
  2016-12-31 00:12:00

引入版本: 3.4.0

官方条目

73、unix_date

语法

sql 复制代码
unix_date(date)

说明

返回日期距 1970-01-01 的天数。

示例

sql 复制代码
> SELECT unix_date(DATE("1970-01-02"));
  1

引入版本: 3.1.0

官方条目

74、unix_micros

语法

sql 复制代码
unix_micros(timestamp)

说明

返回时间戳距 UTC 1970-01-01 00:00:00 的微秒数。

示例

sql 复制代码
> SELECT unix_micros(TIMESTAMP('1970-01-01 00:00:01Z'));
  1000000

引入版本: 3.1.0

官方条目

75、unix_millis

语法

sql 复制代码
unix_millis(timestamp)

说明

返回时间戳距 UTC 1970-01-01 00:00:00 的毫秒数;截断更高精度。

示例

sql 复制代码
> SELECT unix_millis(TIMESTAMP('1970-01-01 00:00:01Z'));
  1000

引入版本: 3.1.0

官方条目

76、unix_seconds

语法

sql 复制代码
unix_seconds(timestamp)

说明

返回时间戳距 UTC 1970-01-01 00:00:00 的秒数;截断更高精度。

示例

sql 复制代码
> SELECT unix_seconds(TIMESTAMP('1970-01-01 00:00:01Z'));
  1

引入版本: 3.1.0

官方条目

77、unix_timestamp

语法

sql 复制代码
unix_timestamp([timeExp[, fmt]])

说明

返回当前或指定时间对应的 Unix 时间戳。

示例

sql 复制代码
> SELECT unix_timestamp();
  1476884637

引入版本: 1.5.0

官方条目

78、weekday

语法

sql 复制代码
weekday(date)

说明

返回一周中的星期序号,星期一为 0,星期日为 6。

示例

sql 复制代码
> SELECT weekday('2009-07-30');
  3

引入版本: 2.4.0

官方条目

79、weekofyear

语法

sql 复制代码
weekofyear(date)

说明

返回指定日期所在的 ISO 规则周序号(星期一开始,每年第一个包含至少四天的周为第一周)。

示例

sql 复制代码
> SELECT weekofyear('2008-02-20');
  8

引入版本: 1.5.0

官方条目

80、window

语法

sql 复制代码
window(time_column, window_duration[, slide_duration[, start_time]])

说明

按照时间戳列、窗口时长和可选滑动时长、起点偏移,将行划入一个或多个时间窗口。

示例

sql 复制代码
> SELECT a, window.start, window.end, count(*) as cnt FROM VALUES ('A1', '2021-01-01 00:00:00'), ('A1', '2021-01-01 00:04:30'), ('A1', '2021-01-01 00:06:00'), ('A2', '2021-01-01 00:01:00') AS tab(a, b) GROUP by a, window(b, '5 minutes') ORDER BY a, start;
  A1    2021-01-01 00:00:00 2021-01-01 00:05:00 2
  A1    2021-01-01 00:05:00 2021-01-01 00:10:00 1
  A2    2021-01-01 00:00:00 2021-01-01 00:05:00 1

引入版本: 2.0.0

官方条目

81、window_time

语法

sql 复制代码
window_time(window_column)

说明

从时间窗口或会话窗口列中提取时间值,返回窗口结束时间减去 1 微秒。

示例

sql 复制代码
> SELECT a, window.start as start, window.end as end, window_time(window), cnt FROM (SELECT a, window, count(*) as cnt FROM VALUES ('A1', '2021-01-01 00:00:00'), ('A1', '2021-01-01 00:04:30'), ('A1', '2021-01-01 00:06:00'), ('A2', '2021-01-01 00:01:00') AS tab(a, b) GROUP by a, window(b, '5 minutes') ORDER BY a, window.start);
  A1    2021-01-01 00:00:00 2021-01-01 00:05:00 2021-01-01 00:04:59.999999  2
  A1    2021-01-01 00:05:00 2021-01-01 00:10:00 2021-01-01 00:09:59.999999  1
  A2    2021-01-01 00:00:00 2021-01-01 00:05:00 2021-01-01 00:04:59.999999  1

引入版本: 3.4.0

官方条目

82、year

语法

sql 复制代码
year(date)

说明

返回日期或时间戳的年份部分。

示例

sql 复制代码
> SELECT year('2016-07-30');
  2016

引入版本: 1.5.0

官方条目

相关推荐
lisw052 小时前
制造业信息化:现代工业的发展趋势!
大数据·网络·人工智能
AllData公司负责人2 小时前
AllData搭建大模型资产中台集成开源项目BISHENG/Crater/Coze-Studio/Coze-Loop/DataFIow,建设AI大模型开发底座
大数据·人工智能·开源·bisheng·coze-studio·crater·datafiow
cc5725026532 小时前
2027校招岗位拆解:数学与应用数学转量化运营,SQL、Python与量化研究要求有何不同?
大数据
cspttty3 小时前
2027用户研究求职准备:应用统计学如何补齐研究设计与业务表达
大数据·数据库
Wang's Blog3 小时前
Java 项目实战: 交友项目 - 阿里云 OSS 入门案例:从创建 Bucket 到上传拿到可访问 URL
java·阿里云·交友
麦豆GEO3 小时前
GEO与传统内容营销的核心差异:AI时代内容运营的全面升级
大数据·人工智能·内容运营
ha_lydms4 小时前
Bitwise Functions(位运算函数)
大数据·hadoop·阿里云·spark·数据处理·dataworks·maxcompute
goujunwe4 小时前
短视频怎么做 GEO:优化字幕和文稿,提升 AI 文本抓取采信率
大数据·人工智能·音视频
yunfengzhineng4 小时前
天津立体库货架配套厂家
大数据·运维·人工智能·python