反馈已提交

网络繁忙

您好,只有最新版本的6.X支持在线编辑修改,如果想创建/编辑文档,请移步到 *最新版本*

常用日期公式

  • 文档创建者:Roxy
  • 历史版本:22
  • 最近更新:April陶 于 2024-03-12
  • 1. 概述

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

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

    注:其中的日期字段需要从函数编辑框左侧的字段中选择,不能手动输入。

    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
    获取某年/季度/月/周的第几天
    昨天
    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(TODAY()),MONTH(TODAY()),DAYSOFMONTH(TODAY()))
    若系统时间为 2021-11-11,则返回 2011-11-30
    当月天数
    DAYSOFMONTH(now())若系统时间为 2021-11-11,则返回 30
    距今已过多少天

    DATEDIF(date(year(日期),month(日期),DAY(日期)),today(),"D" ) 

    若日期为2024-03-01,系统时间为2024-03-12,则返回 11
    当年第几周week(today())
    若日期为2021-10-10,则返回 41
    获取相对于当前月份的某时间
    当月=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
    当月月末

    =DATEDELTA(date(year(MONTHDELTA(日期,1)),month(MONTHDELTA(日期,1)),1),-1)

    或者 DATE(YEAR(日期),MONTH(日期)+1,1-1)

    若系统日期是 2011-11-11,则返回值为 2011-11-30

    取当前维度下的最大值时间

    注:仅适用于仪表板。

    FORMAT(TODATE(MAX_AGG(DATETONUMBER(日期))),"YYYY-MM-dd HH:mm:ss")
    取时间最大值-自助数据集取最晚时间的数据自助数据集-最晚时间

    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

    在线QQ(将在2023.01.03关停):800049425

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭