PDI 从系统日期变量中减去 1 分钟

PDI Subtract 1 Min from system date variable

我正在尝试使用 PDI 从默认系统日期(变量)中减去 1 分钟或 60 秒。我将此命令连接到计算器步骤。但它要么给我一个错误,要么没有时间值

2020/04/20 11:51:00 - Calculator.0 - ERROR (version 9.0.0.0-423, build 9.0.0.0-423 from 2020-01-31 04.53.04 by buildguy) : Unexpected error
2020/04/20 11:51:00 - Calculator.0 - ERROR (version 9.0.0.0-423, build 9.0.0.0-423 from 2020-01-31 04.53.04 by buildguy) : org.pentaho.di.core.exception.KettleStepException: 
2020/04/20 11:51:00 - Calculator.0 - Unable to find the second argument field 'test for calculation #1
2020/04/20 11:51:00 - Calculator.0 - 
2020/04/20 11:51:00 - Calculator.0 -    at org.pentaho.di.trans.steps.calculator.Calculator.processRow(Calculator.java:133)
2020/04/20 11:51:00 - Calculator.0 -    at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
2020/04/20 11:51:00 - Calculator.0 -    at java.lang.Thread.run(Thread.java:748)

使用Modified Java Script Value

MyTime 是一个固定的系统日期。需要添加以下代码片段

var MyNewTime;

MyNewTime = MyTime.setMinutes(MyTime.getMinutes());
MyNewTime = new Date(MyTime);
MyNewTime.setMinutes(MyTime.getMinutes() - 1);

该计算需要一个字段名,而不是一个静态值。

您可以先使用另一个计算 "set field to constant value A" 来解决此问题。那个确实接受列 FieldA 中的值。给它一个名称 (sixty_seconds),一个值 (60) 并将其用作实际计算的字段 B。

设置删除?到 Y 进行第一次计算,这样它就不会添加到输出行中。