make_interval:创建间隔
速查结论
make_interval([years[, months[, weeks[, days[, hours[, mins[, secs]]]]]]]) 是 Spark SQL 中用于从年、月、周、日、小时、分钟和秒创建间隔值的函数。
语法
make_interval([years[, months[, weeks[, days[, hours[, mins[, secs]]]]]]])
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| years | INT | 年数,可以是正数或负数 |
| months | INT | 月数,可以是正数或负数 |
| weeks | INT | 周数,可以是正数或负数 |
| days | INT | 天数,可以是正数或负数 |
| hours | INT | 小时数,可以是正数或负数 |
| mins | INT | 分钟数,可以是正数或负数 |
| secs | DECIMAL | 包含微秒精度的小数部分的秒数 |
示例
> SELECT make_interval(100, 11, 1, 1, 12, 30, 01.001001);
100 years 11 months 8 days 12 hours 30 minutes 1.001001 seconds
> SELECT make_interval(100, null, 3);
NULL
> SELECT make_interval(0, 1, 0, 1, 0, 0, 100.000001);
1 months 1 days 1 minutes 40.000001 seconds
常见报错与避坑指南
- 任一参数为
NULL时,函数返回NULL。 - 参数按位置匹配,可以省略尾部参数(默认值为 0),但不能跳过中间参数。
- 注意
weeks会被转换为天数(weeks * 7)并与days累加,如示例中1 week + 1 day显示为8 days。
Since: 3.0.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

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