當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

常見日期處理函數

1. 描述

在對日期型數據進行操作時,經常會遇到要獲取當前日期,獲取當前時間,獲取日期的年月日等等操作,下面我們就來介紹下日期的常用處理函數。

注:這裏是講的帆軟處理日期函數,SQL 在處理日期時所區别,如:SQL Server獲取當天日期爲:GETDATE(),帆軟公式爲 today()。

2. 轉化日期

DATE(year,month,day):返回一個表示某一特定日期的系列數。

注:year,month,day 若爲小數将自動去掉小數取整,如:2001.5 返回值爲 2001,2001.1 返回值爲 2001。下面只讨論整數情況。

Year:代表年。

若爲正整數不變,若爲 0 或負整數,則取絕對值+1。如:year=-5,則 year 返回值爲 6,即(|-5|+1)。

Month:代表月份。

若 month 爲 1 至 12 的整數,則函數把參數值作爲月。

若 month>12,則函數從年的一月份開始往上累加。如: DATE(2000,25,2)返回值爲 2002-01-02。

若 month=<0,則函數從上年的12月份開始往減去相應的月數。如:DATE(2000,0,2)返回值爲 1999-12-02;DATE(2000,-1,2) 返回值爲 1999-11-02。

注:日期同理,若超過最大天數,會從月的一号開始向上累加;小於月初天數則從上月末減去相應的月數。如:DATE(2000,3,0)返回值爲 2000 年 2 月月末,即 2000-02-29。

Day:代表日。

若日期小於等於某指定月的天數,則函數将此參數值作爲日。

若日期大於某指定月的天數,則函數從指定月份的第一天開始往上累加。若日期大於兩個或多個月的總天數,則函數把減去兩個月或多個月的餘數加到第三或第四個月上,依此類推。例如:DATE(2000,3,35)返回值爲 2000-04-04。

注:

若需要處理公式中日期的一部分,如年或月等,則可用此公式。

若年,月和日是函數而不是函數中的常量,則此公式最能體現其作用。

示例:

DATE(1978, 9, 19) 返回值爲 1978-09-19。

DATE(1211, 12, 1) 返回值爲 1211-12-01。

在單元格中輸入:=date(2011,1,10),其返回值爲 2011-01-10。

若月份大於 12 将從年的一月份開始往上累加,如在單元格中輸入:=date(2011,13,10),其返回值爲 2012-01-10。

3. 獲取當前日期、時間

3.1 當前日期(年月日)

today() 即獲取當前日期。

在單元格中輸入=today(),若系統日期是 2011 年 11 月 11 号,則返回值爲 2011-11-11。

3.2 當前時間(時分秒)

now() 即獲取當前日期與時間。

在單元格中輸入=now(),返回值類型爲日期時間,yyyy-MM-dd hh:mm:ss;如:now(),單元格格式:常規,返回的值 2012-06-20 14:55:57。

4. 獲取日期的年月日

分别通過 year(),month(),day() 這三個函數來獲取日期的年月日。

  • 獲取年份:在單元格中輸入=year("2011-11-11"),返回值爲 2011。

  • 獲取月份:在單元格中輸入=month("2011-11-11"),返回值爲 11。

  • 獲取日期:在單元格中輸入=day("2011-11-11"),返回值爲 11。

注:若 year(),month(),day() 對應的年\月\日帶有小數,将返回當前年或月或日,相當於 year(today()),month(today()),day(today())。

5. 将日期格式化

可以使用 todate() 函數将任何日期形式的數據轉化爲日期型,或者使用 format() 函數可以轉化成任何日期形式的數據。

5.1 将日期格式的字符串轉化成日期型

todate() 可以将任何日期形式的數據轉化成日期型即:yyyy-MM-dd 型數據。

在單元格中輸入=todate("2011/11/11"),返回值爲 2011-11-11。

在單元格中輸入=todate("2/15/11","MM/dd/yy"),返回值爲 2011-02-15。

5.2 将日期型數據轉化成其他格式的日期形式

format() 可以将日期型數據轉化成其他形式的數據。

在單元格中輸入=format("2/15/2011","dd/MM/yyyy"),返回值爲 15/02/2011。

在單元格中輸入=format("2/15/2011","yyyy-MM-dd"),返回值爲 2011-02-15。

6. 日期的加減

可以通過 datedelta()monthdelta()yeardelta() 這三個函數來實現對日期的加減。

1)日期的加減:在單元格中輸入=datedelta(today(),-1),返回當前日期前一天的日期,若系統日期是 2011-11-11,則返回值爲 2011-11-10。

注:公式中的 -1 表示減一天若是正數則表示加相應的天數。

2)月份的加減:在單元格中輸入=monthdelta(today(),-1),返回當前日期上一個月的日期,若系統時間是 2011-11-11,則返回值爲 2011-10-11。

3)年份的加減:在單元格中輸入=yeardelta(today(),-1),返回當前日期上一年的日期,若系統日期是 2011-11-11,則返回值爲 2010-11-11。

7. 獲取某年/季度/月/周的第幾天

可以通過 dateinyear(),dateinquarter(),dateinmonth(),dateinweek() 這四個函數來實現某年/季度/月/周的第幾天。

1)可以通過 dateinyear(date, number)來獲取某年的第幾天。

在單元格中輸入=dateinyear(today(),1),返回當前年的第一天,若系統日期是 2011-11-11,則返回值爲 2011-01-01。

在單元格中輸入=dateinyear(today(),-1),返回當前年的最後一天,若系統日期是 2011-11-11,則返回值爲 2011-12-31。

2)可以通過 dateinquarter(date, number)來獲取某季度的第幾天。

在單元格中輸入=dateinquarter(today(),1),返回當前季度的第一天,若系統日期是 2011-11-11,則返回值爲 2011-10-01。

在單元格中輸入=dateinquarter(today(),-1),返回當前季度的最後一天,若系統日期是 2011-11-11,則返回值爲 2011-12-31。

3)可以通過 dateinmonth(date, number)來獲取某月的第幾天。

在單元格中輸入=dateinmonth(today(),1),返回當前月的第一天,若系統日期是 2011-11-11,則返回值爲 2011-11-01。

在單元格中輸入=dateinmonth(today(),-1),返回當前月的最後一天,若系統日期是 2011-11-11,則返回值爲 2011-11-30。

4)可以通過 dateinweek(date, number)來獲取某周的第幾天。

在單元格中輸入=dateinweek(today(),1),返回當前周的第一天,若系統日期是 2011-11-11,則返回值爲 2011-11-07。

在單元格中輸入=dateinweek(today(),-1),返回當前周的最後一天,若系統日期是 2011-11-11,則返回值爲 2011-11-13。

8. 陽曆轉化成農曆

可以通過 lunar(year,day,month) 函數來實現将陽曆轉化成農曆。

在單元格中輸入:=lunar(2011,10,11),返回的是 2011 年 10 月 11 号對應的農曆日期即返回值爲辛卯年九月十五。

在單元格中輸入:=lunar(2011,10,1),返回的是 2011 年 10 月 1 号對應的農曆日期即返回值爲辛卯年九月初五。

注:lunar 公式支持的時間段爲 1900-2100年。

9. 獲取某月的當月、上月、去年同期、月末等

9.1 當月

MONTH(today())

9.2 去年同期

YEARDELTA(today(),-1)

9.3 上上月

date(year(today()),MONTH(today())-2,day(today()))

9.4 上月

date(year(today()),MONTH(today())-1,day(today()))

9.5 去年同期上月

date(year(today())-1,MONTH(today())-1,day(today()))

9.6 本月月末

DATEINMONTH(TODAY(),-1)

9.7 本月月初

DATEINMONTH(TODAY(),1)

9.8 上月月末

DATEINMONTH(MONTHDELTA(TODAY(),-1),-1)

9.9 上月月初

DATEINMONTH(MONTHDELTA(TODAY(),-1),1)

附件列表


主題: 原簡體文檔
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

反饋已提交

網絡繁忙