如何将Java的日期类型存储到MySQL的日期类型?

3

如何将Java的日期类型存储到MySQL的日期类型?

4个回答

2

确保你的Date是一个java.sql.Timestamp(特别是如果你想要小时、分钟、秒等信息被保存)
你可以像这样将java.util.Date转换为Timestampnew Timestamp(date.getTime())


0
使用PreparedStatement来执行SQL语句,像这样:
Date date = ...;

PreparedStatement ps = connection.prepareStatement("INSERT INTO mytable (this, that, datecol) values (?, ?, ?)");

ps.setString(1, "hello");
ps.setString(2, "world");
ps.setTimestamp(3, new java.sql.Timestamp(date.getTime()));

ps.executeUpdate();

当你这样做时,你让JDBC驱动程序将其转换为数据库所期望的格式,这样你的程序可以保持与数据库的独立性(你不需要自己处理它以符合MySQL的要求)。
在查询数据库时,还要使用PreparedStatement,并在ResultSet上使用getTimestamp()方法来获取日期作为java.sql.Timestamp对象。

0
使用日历类的某个实例将日期转换为字符串,并在SQL查询中使用该字符串。

0

java.time

现代方法使用java.time类。

MySQL中的DATE类型仅表示日期,没有时间和时区。

因此,请使用符合JDBC 4.2标准的LocalDate驱动程序。

ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
LocalDate today = LocalDate.now( z ) ;

myPreparedStatement.setObject( … , today ) ;

检索。

LocalDate ld = myResultSet.getObject( … , LocalDate.class ) ;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接