Home >Database >Mysql Tutorial >How to Efficiently Store Dates Without Time or Time Zone Information in Java and MySQL?
This article will elegantly solve the problem of how to store dates without time information in Java and MySQL.
java.time provides multiple datetime types, where LocalDate represents a date that does not contain time or time zone information. In java.time, dates are represented using the ISO 8601 standard, ensuring that the date part is consistent across all time zones.
When storing LocalDate values in MySQL, the DATE data type should be used. The following table shows the mapping between ANSI SQL data types and Java 8 datetime types:
ANSI SQL 数据类型 | Java 8 日期时间类型 |
---|---|
DATE | LocalDate |
To store a LocalDate value into MySQL, you can use the following JDBC statement:
<code class="language-java">PreparedStatement stmt = connection.prepareStatement("INSERT INTO birth_dates (birthdate) VALUES (?)"); stmt.setObject(1, localDate);</code>
When data is retrieved from the database, it will always be interpreted as the same date regardless of the time zone of the client or database server.
Here is an example of how to use java.time to store and retrieve dates that do not contain time or time zone information:
<code class="language-java">// 创建 LocalDate 对象 LocalDate birthday = LocalDate.of(1990, 1, 1); // 将其存储到数据库中 PreparedStatement stmt = connection.prepareStatement("INSERT INTO birth_dates (birthdate) VALUES (?)"); stmt.setObject(1, birthday); stmt.executeUpdate(); // 从数据库中检索生日 ResultSet rs = connection.prepareStatement("SELECT birthdate FROM birth_dates WHERE id = 1").executeQuery(); if (rs.next()) { LocalDate retrievedBirthday = rs.getObject("birthdate", LocalDate.class); System.out.println(retrievedBirthday); // 输出:1990-01-01 }</code>
The above is the detailed content of How to Efficiently Store Dates Without Time or Time Zone Information in Java and MySQL?. For more information, please follow other related articles on the PHP Chinese website!