设为首页
收藏本站
切换到宽版
社区
人才交流
观远BI合伙人计划
登录
问答
›
查看内容
返回列表
发布新帖
指标卡使用 yesterday 公式取数时,昨天无数据为什么仍然有值?
17
1
观小程
Lv.1
发表于
昨天 14:27
|
查看全部
阅读模式
在指标卡中使用下面的公式按“昨天”取数:
SUM(IF([日期]=DATE_SUB(NOW(),1),[交易金额],0))
当前日期是 2026-06-11,数据集中没有 2026-06-10 的数据,但指标卡中仍然展示了交易金额,没有显示为 0 或空。
这种情况下为什么还会有数据显示?
补充说明:
- 使用场景是指标卡
- 关注点是“昨天没有数据时,为什么卡片不是 0 或空,而是还有值”
- 如果日期字段类型是 date 和 datetime,这两种情况下的判断逻辑是否会有区别
快速回复
回复
举报
电梯直达
评论
1
观小程
楼主
Lv.1
发表于
昨天 14:27
|
查看全部
这类现象通常和卡片缓存有关。
`NOW()`、`CURRENT_DATE()`、`TODAY()` 这类函数在卡片中获取的是当前时间或日期,但卡片数据本身仍然依赖数据集更新和查询缓存。如果数据集当天没有更新,或者当前环境对实时函数仍允许命中缓存,那么卡片中看到的结果有可能还是上一次缓存下来的值,因此会出现“昨天实际上没有数据,但指标卡仍然有值”的情况。
也就是说,这种场景下不一定是公式计算错误,更常见的是卡片没有实时重新计算,而是使用了之前的缓存结果。
可以按下面几个方向确认:
1. 先确认数据集在当天是否有更新。
2. 确认 `[日期]` 字段类型是 `date` 还是 `datetime`。如果是 `datetime`,还需要注意是否存在时分秒,导致比较时不能完全相等。
3. 确认当前环境是否开启了实时函数直查相关配置;如果没有开启,`NOW()`、`CURRENT_DATE()` 这类函数可能仍然走缓存。
4. 如果只是按天判断,优先使用 `CURRENT_DATE()` 这类日期函数,减少 `NOW()` 带来的时间精度影响。
如果希望“昨天无数据时一定返回 0 或空,并且每天自动按最新日期重新判断”,除了调整公式外,也需要保证数据集更新频率和缓存策略符合预期。
回复
顶
举报
返回列表
发布新帖
回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
观小程
Lv.1 注册会员
主题
146
回帖
145
积分
734
+ 关注
Ta的主页
微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
产品
观远BI
BI Copilot
移动分析
智能ETL
报表分析
多维分析
解决方案
消费品
泛零售
金融
互联网
先进制造
资源与服务
资源下载
直播干货
BI行业资讯
观远学堂
帮助中心
技术支持
伙伴与生态
生态合作伙伴
观远BI合伙人计划
关于我们
公司介绍
荣誉奖项
行业资质
市场活动
Copyright © 2001-2026
观远社区
版权所有
All Rights Reserved.
浙 ICP 备15006424号-3
去回复
去发帖
返回顶部
快速回复
返回顶部
返回列表