【江湖救急】在Linux下Qt上使用libzdb封装的数据库连接池,操作数据库时间错误

最近在使用 libzdb封装的 oracle 数据库连接池,在操作数据库时,总是时间格式错误,请走过路过的各位大神给个解决办法,不胜感激!

 

 
    Connection_T con = TradeService::ms_pInstance->m_pConnPool->GetConnection();
    PreparedStatement_T p = Connection_prepareStatement(con,
                     "INSERT INTO TRADE_HIS(DEV_SN,COMPONENT_TYPE,MOD_MODEL_ID"
                     ",MOD_SEQ_NUMBER,TRADE_TYPE_ID,TRADE_CONTENT,TRADE_TIME)"
                     " VALUES(?,?,?,?,?,?,?)");
 
    PreparedStatement_setString(p, 1, "");
    PreparedStatement_setInt(p, 2, 2);
    PreparedStatement_setInt(p, 3, NULL);
    PreparedStatement_setInt(p, 4, 2);
    PreparedStatement_setInt(p, 5, 20175);
    PreparedStatement_setString(p, 6, "维护任务单和设备编号不一致");
 
    QString str = QString("to_timestamp('%1','yyyy-mm-dd hh24:mi:ss')")
            .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
    QByteArray ba = str.toLatin1();
    const char* c_str = ba.data();
 
    PreparedStatement_setString(p, 7,c_str);
 
    if(TradeService::ms_pInstance->m_pConnPool->Insert(p, con) > 0)
    {
        logger()->info("信息表更新");
    }
    else
    {
        logger()->warn("更新信息表失败,将不处理该明细数据");
        return;
    }
以下为打印的数据库错误:
 
当然数据库格式问题,也考虑了,总是改不过来。
 
数据库时间字段定义类型为:TIMESTAMP(6)
 
单独在数据库中执行只有这种格式:
TO_TIMESTAMP('05-8月 -13 06.17.24.128000000 下午', 'DD-MON-RR HH.MI.SS.FF AM')
可以成功插入;
 
有做过相关方面的大神,恳请赏个解决方案!
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值