初生乌龟 2023-04-25 17:23 采纳率: 25%
浏览 8

kettel时间不准确

kettel查询到的时间比真实时间快了13~14小时,
连接的数据库是同一个,两台电脑上同一版本的kettel,同样的读取sql,但是一台不行。

img

img

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-26 09:07
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 以下回答来自chatgpt:

      首先,需要确认两台电脑的时区设置是否一致。如果不一致,需要将时区设置成相同的,并重启Kettle软件。如果时区设置一致,需要使用Kettle的内置函数来将查询结果中的时间做相应的调整。

      具体来说,我们可以使用Kettle的函数“DateDiff”来计算当前电脑的时间与数据库存储的时间差,并将此差值作为参数传入“AddDate”函数中,将时间做相应的调整。假设我们需要将查询结果的时间按照GMT+8时区进行调整,可以按照下列代码进行操作:

      1. 打开Kettle中的查询步骤(Table input)
      2. 在查询中加入如下代码: SELECT DATE_ADD(datetime, INTERVAL TIMESTAMPDIFF(SECOND, NOW(), UTC_TIMESTAMP) + 28800 SECOND) as datetime FROM your_table_name 其中,28800秒是GMT+8时区与UTC时区之间的差值,可以根据需要做相应的调整。
      3. 执行查询并查看结果,在新的查询结果中,时间应该已经按照新的时区进行了调整。

      如果以上方法仍然不能解决问题,可能是数据库存储的时间格式与Kettle的默认时间格式不一致造成的,此时可以使用Kettle的转换步骤(Select values)来显式地指定时间格式,并将查询结果中的时间进行相应的转换。具体操作如下:

      1. 打开Kettle中的查询步骤(Table input)
      2. 将查询转换为如下代码: SELECT DATE_FORMAT(datetime, '%Y-%m-%d %H:%i:%s') as datetime FROM your_table_name 其中,%Y-%m-%d %H:%i:%s是指定的时间格式,可以根据需要做相应的调整。
      3. 添加一个转换步骤(Select values)并配置如下两个字段:
      4. 新字段名:datetime_adjusted 表达式:DATE_ADD(datetime, INTERVAL TIMESTAMPDIFF(SECOND, NOW(), UTC_TIMESTAMP) + 28800 SECOND)
      5. 删除字段:datetime
      6. 执行查询并查看结果,在新的查询结果中,时间应该已经按照新的时区进行了调整。

      如果以上方法仍然不能解决问题,可能是Kettle本身的Bug或者配置问题造成的,此时建议升级到最新版本的Kettle,并检查Kettle的时区配置是否正确。如果以上方法仍然不能解决问题,建议咨询Kettle官方技术支持。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 4月25日

悬赏问题

  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持