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真题
