1. 概述
在對日期型資料進行操作時,經常會遇到要獲取當前日期、獲取當前時間、獲取日期的年月日等等操作。
在 FineDataLink 中可以在新增計算欄中實現。
注:其中的日期欄位需要從函式編輯框左側的欄位中選擇,不能手動輸入。
2. 獲取指定日期時間
實現內容 | 公式 | 結果 | |
---|---|---|---|
獲取當前時間 | |||
獲取當前日期(年月日) | today() | 若系統日期是 2011 年 11 月 11 號,則回傳值為 2011-11-11 | |
獲取當前時間(時分秒) | now() | 若儲存格格式為標準,系統日期是 2012 年 06 月 20 號,傳回的值 2012-06-20 14:55:57 | |
獲取日期的年、月、日 | |||
獲取年份 | year("2011-11-11") | 回傳值為 2011 | |
獲取月份 | month("2011-11-11") | 回傳值為 11 | |
獲取日期 | day("2011-11-11") | 回傳值為 11 | |
年月日時分秒 獲取年月日 | TODATE(FORMAT(2023-06-13 00:01:27,"yyyy-MM-dd")) | 注:時間欄位需要為數值或者是日期類型格式 回傳值為 2023-06-13 00:00:00 | |
獲取某年/季度/月/週的第幾天 | |||
昨天 | NOW()-1 | 若系統時間為 2021-11-09 11:43:53,則傳回 2021-11-08 11:43:53 | |
年初第一天 | DATE(YEAR(NOW()),01,01) | 若系統時間為 2011-11-11,則傳回 2011-01-01 | |
月初 | DATE(YEAR(NOW()),MONTH(NOW()),01) | 若系統時間為 2011-11-11,則傳回 2011-11-01 | |
距今已過多少天 | DATEDIF(date(year(日期),month(日期),1),today(),"D") | 若日期為2021-10-10,系統時間為2021-11-09,則傳回 39 | |
當年第幾週 | week(today()) | 若日期為2021-10-10,則傳回 41 | |
獲取相對於當前月份的某時間 | |||
當月 | MONTH(today()) | 若系統日期是 2011-11-11,則回傳值為 11 | |
上上月 | date(year(today()),MONTH(today())-2,day(today())) | 若系統日期是 2011-11-11,則回傳值為 2011-09-11 | |
上月 | date(year(today()),MONTH(today())-1,day(today())) | 若系統日期是 2011-11-11,則回傳值為 2011-10-11 | |
去年同期上月 | date(year(today())-1,MONTH(today())-1,day(today())) | 若系統日期是 2011-11-11,則回傳值為 2010-10-11 | |
當月月末 | DATE(YEAR(日期),MONTH(日期)+1,1-1) | 若系統日期是 2011-11-11,則回傳值為 2011-11-30 | |
當前時間下再增加2個月的 日期 | date(year(today()),MONTH(today())+2,day(today())) | 若系統日期是 2011-10-11,則回傳值為 2011-12-11 |
3. 資料格式轉化
注:若想轉化某列日期欄位類型,也可使用 字段设置 算子實現。
實現內容 | 公式 | 結果 | |
---|---|---|---|
資料類型轉化 | |||
「正文型」轉化成「日期型」 | todate("2011/11/11") | 若系統日期是 2011 年 11 月 11 號,則回傳值為 2011-11-11 00:00:00 | |
「正文型」轉化成「日期型」 | TODATE("Wed1/15/07","EEEMM/dd/yy") | 將 Wed1/15/07 格式資料轉化為 日期格式 2007-01-17 00:00:00 | |
「正文型」轉化成「日期型」 | TODATE("2021/02/07Wed","yyyy/MM/ddEEE") | 將2021/02/07Wed 格式資料轉化為 日期格式 2021-02-03 00:00:00 | |
「正文型」轉化成「日期型」 年月日正文類型轉化為日期類型 | TODATE("20200522","yyyyMMdd") | 將 20200522 格式資料轉化為 日期格式 2020-05-22 00:00:00 | |
「正文型」轉化成「日期型」 年月正文類型轉化為日期類型 | TODATE("202005","yyyyMM") | 將 202005 格式資料轉化為 日期格式 2020-05-01 00:00:00 | |
「數值類型」轉化為「日期型」 | TODATE(1621221876057) | 時間型(原欄位為 13 位時間戳,精確到毫秒級) 將1621221876057 資料轉化為 日期格式 2021-05-17 11:24:36 | |
TODATE(1621221876*1000) | 時間型(原欄位需 10 位時間戳,精確到秒級),1秒=1000毫秒 將1621221876 資料轉化為2021-05-17 11:24:36 | ||
年月日「正文型」轉化為「年月」「正文型」 | FORMAT(TODATE("2020-02-02"),"yyyyMM") | 將2020-02-02資料轉化為202002 注:若2020-02-02為日期類型,則不需要todate函式,直接FORMAT("2020-02-02","yyyyMM") | |
「日期型」轉換為「數值類型」 | DATETONUMBER("2021-05-17") | (原欄位為 13 位時間戳,精確到毫秒級) 將2021-05-17 資料轉化為數值格式 1,621,180,800,000 | |
(原欄位為 13 位時間戳,精確到毫秒級)轉換成「正文型」 | format(todate(1621221876057),"yyyy-MM-ddEEE") | 將 162122187605 轉化為 2021-05-17Mon | |
將時間型資料轉化成其他格式的日期形式 format() | format("2/15/2011","dd/MM/yyyy") | 回傳值為 15/02/2011 | |
將年、月、日分多個欄位儲存,需要將多個欄位處理成一個日期欄位 | DATE(2020,02,22) | 三個欄位 年——2020 月份——02 日——22 轉化成日期型 2020-02-22 00:00:00 |