java.sql.Timestamp 和 timedelta 中不支持的操作数类型“+”的 NIFI Executescript UTC 错误
Posted
技术标签:
【中文标题】java.sql.Timestamp 和 timedelta 中不支持的操作数类型“+”的 NIFI Executescript UTC 错误【英文标题】:NIFI Executescript UTC Error for unsupported operand type "+" in java.sql.Timestamp and timedelta 【发布时间】:2020-06-10 09:06:30 【问题描述】:我正在尝试将一个流文件拆分为多个流文件,基础是在即将到来的流文件中添加一个月的日期。
例如。 "to":"2019-12-31T00:00:00Z","from":"2019-03-19T15:36:48Z" 是我在流文件中得到的日期。所以我必须将此单个流文件拆分为 11 个具有日期范围的流文件,例如
"to":"2019-04-19","from":"2019-03-19"
"to":"2019-05-19","from":"2019-04-19"
"to":"2019-06-19","from":"2019-05-19"
....... and so till
"to":"2019-12-31","from":"2019-12-19" .
我一直在尝试使用示例输入将文件拆分为日常流文件:
`
begin = '2018-02-15'
end = '2018-04-23'
dt_start = datetime.strptime(begin, '%Y-%m-%d')
dt_end = datetime.strptime(end, '%Y-%m-%d')
one_day = timedelta(days = 1)
start_dates = [dt_start]
end_dates = []
today = dt_start
while today <= dt_end:
tomorrow = today + one_day
print(tomorrow)
`
但我的 Execute 脚本处理器出现错误。 nifi flow screenshot
【问题讨论】:
【参考方案1】:由于您使用的是 Jython,您可能必须将 today
强制转换为某个 Jython/Python 时间变量或调用 today.getTime()
才能对其进行算术运算。
【讨论】:
我使用了 'today.getTime()' 但它将时间更改为 long ,这再次为 long 和 timedelta 提供了不受支持的操作数 我不是 Python 专家,但我认为您需要将 long 转换为 datetime,以便添加 timedelta,可能使用datetime.datetime.fromtimestamp(myNumber)
以上是关于java.sql.Timestamp 和 timedelta 中不支持的操作数类型“+”的 NIFI Executescript UTC 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Joda-Time 与 java.sql.Timestamp 一起使用
flink JDBC 类型转换 java.time.LocalDateTime cannot be cast to java.sql.Timestamp
sqlserver数据库中为datetime类型,通过myeclipse逆向工程生成实体类中属性为啥是java.sql.Timestamp