跳到主要内容

next_day:获取下一个指定星期

速查结论

next_day(start_date, day_of_week) 是 Spark SQL 中用于返回晚于指定日期的第一个匹配星期名称的日期的函数。

语法

next_day(start_date, day_of_week)

参数说明

参数说明
start_date起始日期
day_of_week星期名称缩写,如 'TU'(周二)、'MO'(周一)等

next_day(start_date, day_of_week) - 返回晚于 start_date 的第一个日期,并且该日期的星期名称与 day_of_week 指示的相符。如果至少一个输入参数是 NULL,则函数返回 NULL。当两个输入参数都不为 NULL 且 day_of_week 是无效输入时,如果 spark.sql.ansi.enabled 设置为 true,则函数抛出 IllegalArgumentException,否则返回 NULL。

Examples:

> SELECT next_day('2015-01-14', 'TU');
2015-01-20

常见报错与避坑指南

  • 无效的 day_of_week 输入:当 day_of_week 不是合法的星期缩写时,若 ANSI 模式开启 (spark.sql.ansi.enabled=true),函数会抛出 IllegalArgumentException;否则返回 NULL。建议在调用前确保 day_of_week 合法。
  • NULL 值处理:任一输入参数为 NULL 时,函数直接返回 NULL,不会报错。如果需要对 NULL 做特殊处理,可使用 COALESCE 兜底。

Since: 1.5.0

📱关注公众号

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

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

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

交流微信二维码

你可能还想看