FineReport常用日期設置

做報表常常用到日期函數,對數據進行彙總,現對常用日期的函數進行彙總:

當前時間:now()           返回值類型爲日期,yyyy-MM-dd hh:mm:ss

當天日期:TODAY()

當前月份:MONTH(today())

當月第一天:format(today(),"yyyy-MM-01")

     dateinmonth(today(),1)

當月最後一天:CONCATENATE(format(today(),"yyyy-MM"),"-",DAYSOFMONTH(today()))

      dateinmonth(today(),-1)

上月第一天:format(MONTHDELTA(today(),-1),"yyyy-MM-01")

上月最後一天:CONCATENATE(format(MONTHDELTA(today(),-1),"yyyy-MM"),"-",DAYSOFMONTH(today()))

上個月當前日期:MONTHDELTA(today(),-1),還有一種寫法:

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

上上月:date(year(today()),MONTH(today())-2,day(today()))

去年同期:YEARDELTA(today(),-1)

去年同期上月:date(year(today())-1,MONTH(today())-1,day(today()))

陰曆轉換爲農曆:lunar(year,day,month)

備註:

1.  日期型數據格式yyyy-MM-dd

2.  日期格式化:todate()或format()

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

1)將日期格式的字符串轉化成日期型

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

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

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

2)將日期型數據轉化成其他格式的日期形式

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

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

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

3.  轉化日期

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。


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.  日期的加減

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

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

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

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

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

獲取某月的第幾天

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

官方網頁

http://help.finereport.com/doc-view-876.html

 

7. 計算兩個日期間相差的天數:DATEDIF(A1,B1,"D")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章