本文介紹 SparkSQL 中的日期函式文法。
本文同時提供新增計算欄公式寫法和 SparkSQL 文法寫法,使用者可自行選擇。
推薦使用FineDataLink 新增計算欄中的 DATETONUMBER-日期轉化為13位時間戳
也可以使用 SparkSQL 文法寫法:
to_date(string timestamp)
範例:to_date("1970-01- 01 00:00:00") = 1970-01-01
新增計算列中寫法如下:
TODATE(LEFT(2023-06-13 00:01:27)) 時間欄位需要為正文類型格式。
TODATE(FORMAT(cdate,"yyyy-MM-dd")) 時間欄位需要為日期或者時間類型格式。
回傳值:2023-06-13 00:00:00
year(string date)
範例:year("1970-01-01") = 1970
YEAR("2000/1/1")
quarter(date/timestamp/string)
範例:quarter('2015-04-0 8') =2
month(string date)
範例:month("1970-11-0 1") = 1
day(string date)
範例: day("1970-11-01") = 1
hour(string date)
範例: hour('2009-07-30 12:58:59') = 12
minute(string date)
範例:minute('2009-07-30 12:58:59') = 58
second(string date)
範例:second('2009-07-30 12:58:59') = 59
weekofyear(string date)
範例:weekofyear("1970- 11-01") = 44
datediff(string enddate ,string startdate)
範例:datediff('2009-03-0 1', '2009-02-27') = 2
從開始時間 startdate 加上 days :date_add(string startdate, int days)
從開始時間 startdate 減去 days:date_sub(string startdate, int days)
current_timestamp
範例:select current_timestamp
current_date
範例:select current_date
TODATE(FORMAT(NOW(),"yyyy-MM-dd"))
add_months(string start_date, int num_months):傳回當前時間下再增加 num_months 個月的 日期。
範例:select add_months('2019-05-13',120)
推薦使用 FineDataLink 新增計算列中的公式 date(year(today()),MONTH(today())+num_months,day(today())),詳情參見:常見日期公式
last_day(string date):傳回這個月的最後一天的日期,忽略時分秒部分(HH:mm:ss)。
範例:select last_day('2019-02-01')
推薦使用 FineDataLink 新增計算欄中的公式 DATE(YEAR(日期),MONTH(日期)+1,1-1),詳情參見:常見日期公式
使用 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)
更多範例詳情參見:常見日期公式
months_between(date1, date2):傳回 date1 與 date2 之間相差的月份,如 date1>date2,則傳回正,如果 date1<date2,則傳回負,否則傳回 0.0。
範例:select months_between("2019-04-01", "2019-06-01")
推薦使用 FineDataLink 新增計算欄中的公式DATEDIF-日期差
date_format(date/timestamp/string ts, string fmt):按指定格式傳回時間 date。
範例:select date_format('2019-05-13','MM/dd')
推薦使用 FineDataLink 新增計算欄中的公式FORMAT-格式轉換,傳回指定格式的正文時間資料。
next_day(string start_date, string day_of_week):傳回當前時間的星期幾所對應的日期。
範例:select next_day('2019-05-13', 'TU') 即傳回 2019-05-13 日以後星期二第一次出現的日期。 如下圖所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙