Pentaho日期维度表中星期数与星期名称不匹配问题求助
日期维度表周数值与名称不匹配的问题解决
问题核心
用Pentaho构建日期维度表时,1900-01-01的week_name为Monday(正确),但计算器步骤生成的day of week值为2,二者看似矛盾。
原因
Pentaho Calculator步骤里的Day of week默认计数规则是:1代表周日,2代表周一,以此类推到7代表周六。1900-01-01是周一,所以数值为2是工具的默认逻辑,并非计算错误。(注:你提到的「Day of year of date A」应为笔误,Day of year是年中天数,1900-01-01的该值为1,和你的情况不符,实际应该是用了Day of week计算)
修复方案
如果需要让day of week的数值与周一对应1,可二选一调整:
- 计算器步骤直接修正:新增一个Calculator操作,对原
day of week字段做转换,公式写为:IF([day_of_week] = 1; 7; [day_of_week] - 1) - Java表达式自定义转换:添加「User Defined Java Expression」步骤,用以下表达式生成修正后的周几数值(替换
date为你的日期字段名):(date.getDayOfWeek() == 1) ? 7 : date.getDayOfWeek() - 1
内容的提问来源于stack exchange,提问作者Allen
相关产品推荐
相关产品推荐

