finebi中怎么计算日期字段的时间差

DATESUBDATE(date1,date2,op):返回两个日期之间的时间差。

我看帮助文档里有这个日期差计算函数,可是我的日期是一个字段,怎么通过聚合函数获取最后的日期和最早的日期呢?

——更新——
已通过max_agg和min_agg获取到了最早和最后时间,但目前是时间戳格式,没办法直接计算日期差,我试了下todate函数,并没有效果,出来的还是时间戳格式,而非帮助文档中介绍的日期格式。

企业微信截图_20200409101003.png

FineBI 上海小呆 发布于 2020-4-9 09:30 (编辑于 2020-4-9 10:11)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
上海小呆Lv4见习互助
发布于2020-4-9 11:59

问题解决了,不能直接在仪表板界面进行处理,因为指标计算是数值格式,不可能处理成日期格式。

可以在自助数据集那里,进行分组汇总,按type分组,按date汇总,汇总方式可以直接选择最早时间、最晚时间,超级方便。

感觉finebi产品还是设计的挺不错的,可能finebi帮助文档没有描述清楚。

  • 孤陌 孤陌 我前面回答的时候 就已经说了可以设置按照最大值 和最小值了
    2020-04-09 12:01 
  • 上海小呆 上海小呆(提问者) 回复 孤陌 在仪表板里的指标计算都是针对数值的,没法实现我的需求。 后来是在自助数据集中通过分组汇总解决的,分组汇总的时候,汇总方式finebi直接提供了按最早时间、最晚时间等,不需要公式或函数。 其实很简单,但因为不会操作,走了弯路。
    2020-04-09 13:58 
  • qiyeyunfuwu qiyeyunfuwu 汇总方式里没有最早日期和最晚日期,你是怎么做的
    2020-07-03 16:37 
最佳回答
0
snrtuemcLv8专家互助
发布于2020-4-9 09:31

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

在单元格中输入=dateinmonth(today(),1),返回当前月的第一天,若系统日期是 2011-11-11,则返回值为 2011-11-01。

在单元格中输入=dateinmonth(today(),-1),返回当前月的最后一天,若系统日期是 2011-11-11,则返回值为 2011-11-30。


  • 上海小呆 上海小呆(提问者) 不是获取某月,是表里有一个date字段记录了日期。比如我的表有2个字段type和date,每种type每次执行都会记录一个date,我现在要知道怎么获取每种type的最后一次date和第一次date,然后据此计算出日期差。
    2020-04-09 09:34 
  • snrtuemc snrtuemc 回复 上海小呆(提问者) 通过sql处理,去除最大最小日期 select type,max(date) from 表 group by type ---每个type最大日期 select type,min(date) from 表 group by type ---每个type最小日期 select type,max(date) from 表 wher type=1 ---指定type最大日期 select type,min(date) from 表 where type= 1 ---指定type最小日期 然后根据这个用DATESUBDATE(date1,date2,op)去比较
    2020-04-09 09:39 
  • 上海小呆 上海小呆(提问者) 回复 snrtuemc finebi里应该不支持sql吧,只能在取数环境进行计算?
    2020-04-09 09:43 
  • snrtuemc snrtuemc 回复 上海小呆(提问者) 如果已经取出数据了,只能根据每个type,用MIN_AGG和MAX_AGG函数试一下
    2020-04-09 09:50 
  • 上海小呆 上海小呆(提问者) 回复 snrtuemc 用MIN_AGG和MAX_AGG函数是可以取到最大和最小的。但因为是时间戳格式,没法直接计算时间差,我用了todate函数,但好像并没有效果。请问这个怎么解决?
    2020-04-09 10:07 
最佳回答
0
孤陌Lv6资深互助
发布于2020-4-9 10:17

可以设置2个日期字段把  一个设置显示最大日期  一个显示最小日期 然后公式计算日期差

  • 上海小呆 上海小呆(提问者) 用MIN_AGG和MAX_AGG函数取到最大和最小值了。但因为是时间戳格式,没法直接计算时间差,我用了todate函数,但好像并没有效果。请问这个怎么解决?截图已补充到问题中
    2020-04-09 10:21 
  • 孤陌 孤陌 回复 上海小呆(提问者) 用公式 处理成年月日的格式 再减 就好了啊
    2020-04-09 10:21 
  • 孤陌 孤陌 回复 上海小呆(提问者) 转不了??? 那就直接减 然后把毫秒数/一天的毫秒数 就可以了啊
    2020-04-09 10:25 
  • 上海小呆 上海小呆(提问者) 回复 孤陌 你这也是一种变通的法子,先点个赞。 不过存在一个问题,无法根据自然日(每日0点区分)来计算日期差,除以一天毫秒数得出的数字,四舍五入等方法都无法得到自然日的日期差
    2020-04-09 10:44 
  • 孤陌 孤陌 回复 上海小呆(提问者) 你如果要几天 几时 几秒这样的? 那你 毫秒数 再转换成这样的就好了啊
    2020-04-09 10:47 
  • 2关注人数
  • 1770浏览人数
  • 最后回答于:2020-4-9 11:59
    请选择关闭问题的原因
    确定 取消
    返回顶部