我必须将给定的日期转换为季度。 这通常意味着(使用浮点),我可以在Nifi的表达语言中使用此算法:
${start_dt
:toDate("yyyy-MM-dd'T'HH:mm:ssZ")
:format('MM','GMT')
:toNumber()
:divide(3)
:plus(0.9)
:toDecimal()}
步骤如下:
2019-11-10T12:00:00+0000
-> 11
-> 11
-> 3.66666
-> 4.56666
-> 4
2019-12-10T12:00:00+0000
-> 12
-> 12
-> 4
-> 4.9
-> 4
但是相反,我得到了3.9,仅在第12个月有效,所以toNumber()不起作用。作为文档,我必须在除法之前转换为Number,以便获得浮点数,但显然这是行不通的。
我不想仅仅为了这个小小的计算而使用脚本。
Nifi版本为1.9.2
答案 0 :(得分:0)
使用divide(3.0)
代替divide(3)
解决了这个问题。
文档说,如果参数之一是数字,则使用该参数。由于我不是母语人士,因此我也混用了Number和Decimal。小数是浮点数,数字是整数。
这是工作算法:
${start_dt
:toDate("yyyy-MM-dd'T'HH:mm:ssZ")
:format('MM','GMT')
:divide(3.0)
:plus(0.9)
:toNumber()}