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。

  1. 转化日期

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。

  1. 获取日期的年月日

分别通过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())。

  1. 日期的加减

可以通过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。

获取某月的第几天

  1. 可以通过dateinmonth(date, number)来获取某月的第几天。

  2. 计算两个日期间相差的天数:DATEDIF(A1,B1,“D”)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值