跳到主要内容

make_timestamp_ntz:创建无时区时间戳

速查结论

make_timestamp_ntz(year, month, day, hour, min, sec) 是 Spark SQL 中用于根据年月日时分秒字段创建无时区的本地日期时间的函数。

语法

make_timestamp_ntz(year, month, day, hour, min, sec)

参数说明

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

示例

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

常见报错与避坑指南

  • 如果配置 spark.sql.ansi.enabledfalse,输入无效时函数返回 NULL;如果设置为 true,则会抛出错误。
  • 该函数返回 TIMESTAMP_NTZ 类型(无时区),与 make_timestamp_ltzmake_timestamp 不同。
  • make_timestamp 不同,该函数不接受时区参数,创建的时间戳不携带任何时区信息。

Since: 3.4.0

📱关注公众号

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

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

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

交流微信二维码

你可能还想看