1. 概述编辑
本文介绍 SparkSQL 中的日期函数语法。
2. 时间戳编辑
推荐使用FineDataLink 新增计算列中的 DATETONUMBER-日期转化为13位时间戳
3. 时间字符串编辑
| 公式/函数 | 说明 | 示例 |
|---|---|---|
推荐使用 FineDataLink 新增计算列中的函数TODATE、LEFT、FORMAT | 返回日期时间字符串的年月日部分 | 新增计算列中写法如下: TODATE(LEFT(2023-06-13 00:01:27)) 时间字段需要为文本类型格式。 TODATE(FORMAT(cdate,"yyyy-MM-dd")) 时间字段需要为日期或者时间类型格式。 返回值:2023-06-13 00:00:00 |
| 推荐使用 FineDataLink 函数 YEAR-返回年份 | 返回日期时间字符串的年份部分 | 新增计算列中写法如下: YEAR("2000/1/1") 返回 2000 |
SparkSQL quarter(date/timestamp/string) | 返回当前日期时间属于哪个季度 | SparkSQL 语句: SELECT quarter("2023-06-13 00:01:27") from DB表输入
|
| 推荐使用 FineDataLink 函数 MONTH-日期中的月份 | 返回日期中的月 | 新增计算列中写法如下: MONTH("2000/1/1") 返回 1 |
| 推荐使用 FineDataLink 函数 DAY-日期中的日 | 返回日期中的日 | 新增计算列中写法如下: DAY("2000/1/1") 返回 1 |
| 返回某一指定时间的小时数 | 新增计算列中写法如下: HOUR("11:32:40") 返回 11 | |
| 推荐使用 FineDataLink 函数 MINUTE-分钟数 | 返回某一指定时间的分钟数 | 新增计算列中写法如下: MINUTE("15:36:25","HH:mm:ss") 返回 36 |
| 推荐使用 FineDataLink 函数 SECOND-秒数 | 返回某一指定时间的秒数 | 新增计算列中写法如下: SECOND("15:36:25") 返回 25 |
| 推荐使用 FineDataLink 函数 WEEK-求周数 | 返回一个代表一年中的第几周的数字 | 新增计算列中写法如下: WEEK("2010/1/1") 返回52 |
| 推荐使用 FineDataLink 函数 DATEDIF-日期差 | 返回两个指定日期间的天数、月数或年数 | 新增计算列中写法如下: DATEDIF("2001/2/28","2004/3/20","D") 1116,即在2001年2月28日与2004年3月20日之间有1116个整天 |
| 推荐使用 FineDataLink 函数ADDTODATE-指定日期后指定DELTA时间的日期 | 返回指定日期后,指定年/月/日/时/分/秒后的日期 | 新增计算列中写法如下: ADDTODATE("2023-01-01", "y", 1) 返回 2024-01-01 |
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 日以后星期二第一次出现的日期。 如下图所示:



