如何将java日期类型存储到mysql日期类型?

时间:2010-05-31 08:22:19

标签: java mysql

如何将java日期类型存储到mysql日期类型?

4 个答案:

答案 0 :(得分:2)

看到您的Datejava.sql.Timestamp(特别是如果你想要持续数小时,分钟,秒......) 您可以将java.util.Date转换为Timestamp,如下所示:new Timestamp(date.getTime())

答案 1 :(得分:0)

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

答案 2 :(得分: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并使用getTimestamp()上的ResultSet方法将日期作为java.sql.Timestamp对象。

答案 3 :(得分:0)

java.time

现代方法使用 java.time 类。

MySQL中的DATE类型仅表示日期,没有一天中的时间,也没有一个区域。

因此,LocalDate与兼容JDBC 4.2的驱动程序一起使用。

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

myPreparedStatement.setObject( … , today ) ;

检索。

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