1. 概述编辑
本文介绍 SparkSQL 中的日期函数语法。
2. 时间戳编辑
推荐使用FineDataLink 新增计算列中的 DATETONUMBER-日期转化为13位时间戳
3. 时间字符串编辑
| 公式/函数 | 说明 |
|---|---|
推荐使用 FineDataLink 新增计算列中的函数TODATE、LEFT、FORMAT | 返回日期时间字符串的年月日部分 |
| 推荐使用 FineDataLink 函数 YEAR-返回年份 | 返回日期时间字符串的年份部分 |
SparkSQL quarter(date/timestamp/string) | 返回当前日期时间属于哪个季度 |
| 推荐使用 FineDataLink 函数 MONTH-日期中的月份 | 返回日期中的月 |
| 推荐使用 FineDataLink 函数 DAY-日期中的日 | 返回日期中的日 |
| 返回某一指定时间的小时数 | |
| 推荐使用 FineDataLink 函数 MINUTE-分钟数 | 返回某一指定时间的分钟数 |
| 推荐使用 FineDataLink 函数 SECOND-秒数 | 返回某一指定时间的秒数 |
| 推荐使用 FineDataLink 函数 WEEK-求周数 | 返回一个代表一年中的第几周的数字 |
| 推荐使用 FineDataLink 函数 DATEDIF-日期差 | 返回两个指定日期间的天数、月数或年数 |
| 推荐使用 FineDataLink 函数ADDTODATE-指定日期后指定DELTA时间的日期 | 返回指定日期后,指定年/月/日/时/分/秒后的日期 |
quarter(date/timestamp/string)
在 SparkSQL 中输入语句:
SELECT quarter("2023-06-13 00:01:27") from DB表输入
3. 获取当前时间编辑
| 公式/函数 | 说明 |
|---|---|
| 推荐使用 FineDataLink 函数NOW-当前时间 | 返回当前时间戳 |
| 推荐使用 FineDataLink 函数 TODATE(FORMAT(NOW(),"yyyy-MM-dd")) | 返回当前时间日期 |
4. 增加月数编辑
返回当前时间下再增加 num_months 个月的 日期。
推荐使用 FineDataLink 公式 date(year(today()),MONTH(today())+num_months,day(today())),详情参见:常见日期公式
5. 获取月末日期编辑
返回这个月的最后一天的日期。
推荐使用 FineDataLink 公式 DATE(YEAR(日期),MONTH(日期)+1,1-1),详情参见:常见日期公式
6. 获取开始年或月编辑
使用 SparkSQL 函数 trunc(string date, string format):返回时间的最开始年份或月份。
示例:select trunc("2016-06-26","MM"),trunc("2016-06-26","YY")
则可以看到日期 2016-06-26 的年初和月初时间,如下图所示:

当然也可以使用 FineDataLink 公式:DATE(YEAR(NOW()),01,01)、DATE(YEAR(NOW()),MONTH(NOW()),01)
更多示例详情参见:常见日期公式
7. 日期月份差编辑
推荐使用 FineDataLink 函数:DATEDIF-日期差
8. 获取指定格式日期编辑
推荐使用 FineDataLink 函数FORMAT-格式转换,返回指定格式的文本时间数据。
9. 下周几日期编辑
next_day(string start_date, string day_of_week):返回当前时间的星期几所对应的日期。
示例:select next_day('2019-05-13', 'TU') 即返回 2019-05-13 日以后星期二第一次出现的日期。 如下图所示:


