java.util.Date()插入MySQL数据库datetime字段出错的解决办法

本文解决了Java与MySQL日期格式不一致导致的问题。通过将Java的默认日期格式转换为MySQL可接受的格式(如 yyyy-MM-dd HH:mm:ss),确保了日期数据能够正确地存储到MySQL数据库中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出错的原因:两种date格式不一致。
java中默认的日期格式是:Thu Mar 31 18:59:29 CST 2016
MySQL中默认的日期格式是:2016-03-31 06:59:29

所以出错了。

解决办法:将java.util.Date()格式转化成MySQL的格式;

例: SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
Date sqlDate = sp.parse(sp.format(new Date())));
saveDate2Mysql(sqlDate );
在从MySQL数据库中获取`datetime`字段时,如果出现`Unsupported conversion from LONG to java.sql.Timestamp`错误,通常是因为数据库驱动程序在尝试将`LONG`类型的数据转换为`java.sql.Timestamp`类型时发生了问题。以下是一些可能的原因和解决方法: ### 可能的原因 1. **数据类型不匹配**:数据库中的`datetime`字段Java代码中被错误地映射为`LONG`类型,而不是`java.sql.Timestamp`或`java.util.Date`。 2. **驱动程序问题**:使用的MySQL JDBC驱动程序版本过旧或不兼容,导致无法正确处理`datetime`类型的数据。 3. **SQL查询问题**:在SQL查询中,`datetime`字段被错误地转换为了`LONG`类型。 ### 解决方法 1. **检查数据类型映射**:确保在Java代码中使用正确的类型来映射数据库中的`datetime`字段。例如,使用`java.sql.Timestamp`或`java.util.Date`。 ```java import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Timestamp; import java.util.Date; // 示例代码 Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection(DB_URL, USER, PASS); String sql = "SELECT datetime_column FROM your_table"; pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); while (rs.next()) { Timestamp timestamp = rs.getTimestamp("datetime_column"); Date date = new Date(timestamp.getTime()); System.out.println(date); } } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭资源 } ``` 2. **更新JDBC驱动程序**:确保使用的是最新版本的MySQL JDBC驱动程序,以避免驱动程序不兼容的问题。 ```xml <!-- 示例:更新Maven依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> ``` 3. **检查SQL查询**:确保SQL查询中没有对`datetime`字段进行不必要的转换。 ```sql -- 示例:正确的SQL查询 SELECT datetime_column FROM your_table; -- 示例:不正确的SQL查询 SELECT UNIX_TIMESTAMP(datetime_column) FROM your_table; ``` ### 总结 `Unsupported conversion from LONG to java.sql.Timestamp`错误通常是由于数据类型不匹配或驱动程序问题引起的。通过检查数据类型映射、更新驱动程序和检查SQL查询,可以解决此问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值