finebi获取2020-02-02这样的时间格式字段报错,该怎么处理

我们的mysql数据库中存在一个时间字段,时间字段的格式是0000-00-00, 通过finebi浏览数据时正常,但是更新时,就报错。只有select时不添加0000-00-00这个字段才行。 但是我有必须使用这个字段,该怎么处理呢?

FineBI 用户iCAhf8155 发布于 2020-2-5 17:14
1min目标场景问卷 立即参与
回答问题
悬赏:5 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
codeclyLv4初级互助
发布于2020-2-5 17:20

可以试下以下这两种方法:

方法一:jdbc的url加zeroDateTimeBehavior参数: 

修改数据库连接的定义 url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true 

zeroDateTimeBehavior=round是为了指定MySql中的DateTime字段默认值查询时的处理方式;默认是抛出异常,

 

方法二:select  查询语句中做如下处理:

SELECT ID, IF(createDate='0000-00-00','null',createDate)createDate FROM T_DateTest;

这里将createDate格式转换为”null“展示,不再抛出SQLException。


  • 用户iCAhf8155 用户iCAhf8155(提问者) 但是我需要使用createDate这个字段里边的数据,如果设置成空,我怎么用数据呢
    2020-02-05 17:32 
  • codecly codecly 回复 用户iCAhf8155(提问者) 如果等于\'0000-00-00\'为空,其他值还是不影响的,这个是数据库没有设置默认值导致的默认是\'0000-00-00\',然后数据转换类型出问题了。
    2020-02-05 17:40 
  • codecly codecly 回复 用户iCAhf8155(提问者) 你的问题是因为数据库里面有 \'0000-00-00\' 这样的数据吗
    2020-02-05 17:40 
  • 用户iCAhf8155 用户iCAhf8155(提问者) 回复 codecly SELECT ID, IF(createDate=\'0000-00-00\',\'null\',createDate)createDate FROM T_DateTest; 这里将createDate格式转换为”null“展示,不再抛出SQLException。 使用这种方式,可以将createDate的格式从0000-00-00变成0000-00-00 00:00:00 多谢
    2020-02-05 17:57 
  • 2关注人数
  • 526浏览人数
  • 最后回答于:2020-2-5 17:20
    请选择关闭问题的原因
    确定 取消
    返回顶部