跳到主要内容

make_timestamp_ltz:创建本地时区时间戳

速查结论

make_timestamp_ltz(year, month, day, hour, min, sec[, timezone]) 是 Spark SQL 中用于根据年月日时分秒和时区字段创建带本地时区的时间戳的函数。

语法

make_timestamp_ltz(year, month, day, hour, min, sec[, timezone])

参数说明

参数类型说明
yearINT要表示的年份,从 1 到 9999
monthINT要表示的月份,从 1(一月)到 12(十二月)
dayINT要表示的月份中的天数,从 1 到 31
hourINT要表示的小时数,从 0 到 23
minINT要表示的分钟数,从 0 到 59
secDECIMAL要表示的秒数和其微秒分数,从 0 到 60。如果 sec 参数等于 60,则秒字段设置为 0,并且在最终时间戳中增加 1 分钟
timezoneSTRING时区标识符。例如,CET,UTC 等

示例

> SELECT make_timestamp_ltz(2014, 12, 28, 6, 30, 45.887);
2014-12-28 06:30:45.887
> SELECT make_timestamp_ltz(2014, 12, 28, 6, 30, 45.887, 'CET');
2014-12-27 21:30:45.887
> SELECT make_timestamp_ltz(2019, 6, 30, 23, 59, 60);
2019-07-01 00:00:00
> SELECT make_timestamp_ltz(null, 7, 22, 15, 30, 0);
NULL

常见报错与避坑指南

  • 如果配置 spark.sql.ansi.enabledfalse,输入无效时函数返回 NULL;如果设置为 true,则会抛出错误。
  • 该函数始终返回 TIMESTAMP_LTZ 类型(带本地时区),与 make_timestamp_ntz(无时区)不同。
  • 如果不提供 timezone 参数,则使用当前会话时区。

Since: 3.4.0

📱关注公众号

「数据仓库技术」文章同步更新,不错过每一篇干货

微信公众号二维码
💬加群交流

备注「数据仓库技术」加入社群,每日一道大厂SQL真题

交流微信二维码

你可能还想看