反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

常见日期函数

  • 文档创建者:lu123
  • 历史版本:32
  • 最近更新:Leo.Tsai 于 2021-10-21
  • 1. 概述

    在对日期型数据进行操作时,经常会遇到要获取当前日期、获取当前时间、获取日期的年月日等等操作。

    本文介绍 FineReport 常用的处理日期函数。

    注:当日期型公式作为参数在超链中传参时,将会传过去带有时分秒的原始值。

    2. 获取指定日期时间

    实现内容
    公式结果
    获取当前时间
    获取当前日期(年月日)=today()若系统日期是 2011 年 11 月 11 号,则返回值为 2011-11-11
    获取当前时间(时分秒)=now()若单元格格式为常规,系统日期是 2012 年 06 月 20 号,返回的值 2012-06-20 14:55:57
    显示当前月份所在季度=roundup(month(today())/3)若系统日期为 2011 年 11 月 11 号,则返回值为 4
    获取日期的年、月、日
    获取年份=year("2011-11-11")返回值为 2011
    获取月份=month("2011-11-11")返回值为 11
    获取日期=day("2011-11-11")返回值为 11
    获取某年/季度/月/周的第几天
    DATEINYEAR(date, number) 获取某年的第几天当前年的第一天=dateinyear(today(),1)若系统日期是 2011-11-11,则返回值为 2011-01-01
    当前年的最后一天=dateinyear(today(),-1)若系统日期是 2011-11-11,则返回值为 2011-12-31
    DATEINQUARTER(date, number) 获取某季度的第几天当前季度的第一天=dateinquarter(today(),1)若系统日期是 2011-11-11,则返回值为 2011-10-01
    当前季度的最后一天=dateinquarter(today(),-1)若系统日期是 2011-11-11,则返回值为 2011-12-31
    DATEINMONTH(date, number)获取某月的第几天当前月的第一天=dateinmonth(today(),1)若系统日期是 2011-11-11,则返回值为 2011-11-01
    当前月的最后一天=dateinmonth(today(),-1)若系统日期是 2011-11-11,则返回值为 2011-11-30
    DATEINWEEK(date, number)来获取某周的第几天当前周的第一天=dateinweek(today(),1)若系统日期是 2011-11-11,则返回值为 2011-11-07
    当前周的最后一天=dateinweek(today(),-1)若系统日期是 2011-11-11,则返回值为 2011-11-13
    获取相对于当前月份的某时间
    当月=MONTH(today())若系统日期是 2011-11-11,则返回值为 11
    去年同期=YEARDELTA(today(),-1)若系统日期是 2011-11-11,则返回值为 2010-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
    上月月末=DATEINMONTH(MONTHDELTA(TODAY(),-1),-1)若系统日期是 2011-11-11,则返回值为 2011-10-31
    上月月初=DATEINMONTH(MONTHDELTA(TODAY(),-1),1)若系统日期是 2011-11-11,则返回值为 2010-10-01

    3. 时间的转化

    实现内容
    公式结果
    数据类型转化

    将日期形式的「字符串」转化成「时间型」

    todate() 可以将任何日期形式的数据转化成时间型即:yyyy-MM-dd 

    =todate("2011/11/11")若系统日期是 2011 年 11 月 11 号,则返回值为 2011-11-11

    将时间型数据转化成其他格式的日期形式

    format() 

    =format("2/15/2011","dd/MM/yyyy")

    返回值为 15/02/2011

    阳历转化为农历
    阳历转化成农历=lunar(2011,10,11)返回的是 2011 年 10 月 11 号对应的农历日期即返回值为辛卯年九月十五
    =lunar(2011,10,1)返回的是 2011 年 10 月 1 号对应的农历日期即返回值为辛卯年九月初五

    4. 日期的加减计算

    可以通过 datedelta()、monthdelta()、yeardelta() 这三个函数来实现对日期的加减。

    实现内容
    公式结果
    数据类型转化

    日期的加减

    =datedelta(today(),-1)

    注:公式中的 -1 表示减一天,若是正数则表示加相应的天数。

    返回当前日期前一天的日期,若系统日期是 2011-11-11,则返回值为 2011-11-10

    月份的加减

    =monthdelta(today(),-1)

    返回当前日期上一个月的日期,若系统时间是 2011-11-11,则返回值为 2011-10-11

    年份的加减=yeardelta(today(),-1)返回当前日期上一年的日期,若系统日期是 2011-11-11,则返回值为 2010-11-11


    附件列表


    主题: 报表专题
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526