在 Java 中管理 MySQL 日期时间和时间戳
从 Java 应用程序使用 MySQL 数据库时,处理日期和时间信息可以是由于可用的数据类型不同而面临挑战。要找到合适的折衷方案,了解每种类型的特征非常重要。
Java 中的表示
在 Java 中,日期通常由 java.util 表示。日期类。该类封装了一个时间戳,其中包含日期和时间信息。 java.util.Date 的精度通常以毫秒为单位。
MySQL 中的表示
MySQL 提供三种标准日期和时间类型:DATE、TIME 和 TIMESTAMP。在 JDBC 中,这些类型分别映射到 java.sql.Date、java.sql.Time 和 java.sql.Timestamp。这些类是 java.util.Date 的子类。
与 java.util.Date 不同,java.sql.Date 只包含日期信息,而 java.sql.Time 只包含时间信息。另一方面,java.sql.Timestamp 结合了日期和时间信息。这些类型的精度取决于数据库,但通常以毫秒为单位。
存储时间戳
要在数据库中存储时间戳,可以使用PreparedStatement# setTimestamp() 方法。
java.util.Date date = getItSomehow();
Timestamp timestamp = new Timestamp(date.getTime());
preparedStatement = connection.prepareStatement("SELECT * FROM tbl WHERE ts > ?");
preparedStatement.setTimestamp(1, timestamp);
检索时间戳
要从数据库检索时间戳,可以使用 ResultSet#getTimestamp() 方法。
Timestamp timestamp = resultSet.getTimestamp("ts");
java.util.Date date = timestamp; // You can just upcast.
通过了解这些不同的数据类型及其使用模式,您可以在与 MySQL 数据库交互时有效地管理 Java 应用程序中的日期时间和时间戳。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3