历史版本2 :SparkSQL日期函数 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

1. 概述编辑

本文介绍 SparkSQL 中的日期函数语法。

2. 时间戳编辑

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)

返回当前日期时间属于哪个季度

语句:

SELECT quarter("2023-06-13 00:01:27") from 

DB表输入

推荐使用 FineDataLink 函数 MONTH-日期中的月份返回日期中的月MONTH("2000/1/1") 返回 1
推荐使用 FineDataLink 函数 DAY-日期中的日返回日期中的日DAY("2000/1/1") 返回 1

推荐使用 FineDataLink 函数 HOUR-小时数


返回某一指定时间的小时数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.  获取当前时间编辑

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 日以后星期二第一次出现的日期。 如下图所示: