跳到主要内容

trunc:日期截断

速查结论

trunc(date, fmt) 是 Spark SQL 中用于将日期截断到指定时间单位的函数。

语法

trunc(date, fmt)

参数说明

参数说明
date日期值或有效的日期字符串
fmt表示要截断到的单位的格式
  • "YEAR", "YYYY", "YY" - 截断到日期所在的年份的第一天
  • "QUARTER" - 截断到日期所在的季度的第一天
  • "MONTH", "MM", "MON" - 截断到日期所在的月份的第一天
  • "WEEK" - 截断到日期所在的周的星期一

trunc(date, fmt) - 返回截断到由格式模型fmt指定的单位的当天时间部分的日期。

Examples:

> SELECT trunc('2019-08-04', 'week');
2019-07-29
> SELECT trunc('2019-08-04', 'quarter');
2019-07-01
> SELECT trunc('2009-02-12', 'MM');
2009-02-01
> SELECT trunc('2015-10-27', 'YEAR');
2015-01-01

常见报错与避坑指南

  • WEEK 的起始日trunc(date, 'WEEK') 返回的是当周的星期一(ISO 周标准),而非周日。如果需要以周日为起始日,请使用其他函数或自行计算。
  • fmt 大小写:fmt 参数大小写不敏感,'YEAR'、'Year'、'year' 效果相同。但建议统一使用大写以保持一致性。
  • 不支持的 fmt:若传入不支持的格式字符串,函数会抛出异常。请确保使用上述合法的格式之一。

Since: 1.5.0

📱关注公众号

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

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

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

交流微信二维码

你可能还想看