数据库日期字段类型错误

数据库日期字段类型内容不能是 0000-00-00 00:00:00。类型转换

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.TransientDataAccessResourceException: 
### Error querying database.  Cause: java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 11 to TIMESTAMP.
### The error may exist in file [D:\tomcat7\webapps\jk1111\WEB-INF\classes\cn\itcast\jk\mapper\Contract.xml]
### The error may involve cn.itcast.jk.mapper.ContractMapper.find-Inline
### The error occurred while setting parameters
### SQL: SELECT * FROM contract_c
### Cause: java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 11 to TIMESTAMP.
; SQL []; Cannot convert value '0000-00-00 00:00:00' from column 11 to TIMESTAMP.; nested exception is java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 11 to TIMESTAMP.
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948)
在QSqlDatabase中,日期时间类型字段常用的有两种格式:一种是UTC时间格式,另种是本地时间格式。下面分别说明如何在QSqlDatabase中处理这两种格式的日期时间类型字段。 1. UTC时间格式 如果你在QSqlDatabase中的日期时间类型字段中存储UTC时间,可以使用QDateTime的fromMSecsSinceEpoch函数将时间戳转换为QDateTime类型,然后再使用QDateTime的toString函数将其转换为字符串类型,代码如下: ```cpp QSqlQuery query("SELECT datetime FROM my_table"); while (query.next()) { qint64 timestamp = query.value(0).toLongLong(); QDateTime dateTime = QDateTime::fromMSecsSinceEpoch(timestamp * 1000, Qt::UTC); QString dateString = dateTime.toString("yyyy-MM-dd hh:mm:ss.zzz"); // do something with dateString } ``` 在上面的代码中,我们首先使用QSqlQuery类查询数据库中的datetime字段,然后使用toLongLong函数将其转换为时间戳,接着使用fromMSecsSinceEpoch函数将时间戳转换为QDateTime类型,这里需要注意,我们需要将时间戳乘以1000,以将秒转换为毫秒。最后,使用toString函数将QDateTime类型转换为字符串类型。 2. 本地时间格式 如果你在QSqlDatabase中的日期时间类型字段中存储的是本地时间,可以使用QDateTime的fromString函数将其转换为QDateTime类型,然后再使用toString函数将其转换为字符串类型,代码如下: ```cpp QSqlQuery query("SELECT datetime FROM my_table"); while (query.next()) { QString dateString = query.value(0).toString(); QDateTime dateTime = QDateTime::fromString(dateString, "yyyy-MM-dd hh:mm:ss.zzz"); // do something with dateTime } ``` 在上面的代码中,我们首先使用QSqlQuery类查询数据库中的datetime字段,然后使用toString函数将其转换为字符串类型,接着使用fromString函数将字符串类型转换为QDateTime类型。需要注意的是,在使用fromString函数时,需要指定日期时间的格式,否则会出现转换错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值