【数据库】数据库操作库soci解析mysql中DATETIME(3)类型的毫秒值

文章讨论了soci库源码中DATETIME类型转换为std::tm导致毫秒精度丢失的问题,提出通过修改转换函数转为字符串并重新解析,或自定义日期时间类来保留毫秒精度的解决方案。
摘要由CSDN通过智能技术生成

一、问题

soci库的源码中将数据库的DATETIME类型全部转换成了std::tm结构,但这样产生的问题是,数据库保存的DATETIME(3)类型中的毫秒值会丢失。
在这里插入图片描述
在这里插入图片描述

二、解决

修改源码中的转换函数,将dt_date类型的值转为string类型。
在这里插入图片描述
读取时就可以用row.get<std::string>()方式获取,再将字符串解析为带有毫秒精度的日期时间。
也可以自己封装带有毫秒精度的日期时间类进行解析。

  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值