Java 日期转换 SQL Server

在Java应用程序中,经常需要将日期时间数据转换为SQL Server中的日期时间类型。本文将介绍如何在Java中进行日期转换,并提供代码示例。

1. Java日期转换为SQL Server日期

Java中的日期时间类型主要有java.util.Datejava.time.LocalDateTime。这些类型需要转换为SQL Server中的日期时间类型,例如datetimedatetime2

首先,我们需要使用java.sql.Timestamp类将Java日期时间转换为SQL Server中的日期时间类型。以下是一个示例代码:

import java.sql.Timestamp;
import java.util.Date;

public class DateConverter {
    public static void main(String[] args) {
        Date javaDate = new Date();
        Timestamp sqlTimestamp = new Timestamp(javaDate.getTime());
        System.out.println(sqlTimestamp);
    }
}

在上面的示例中,我们使用java.util.Date类表示当前日期时间,并使用java.sql.Timestamp类将其转换为SQL Server中的日期时间类型。getTime()方法返回自1970年1月1日零时以来的毫秒数。

2. SQL Server日期转换为Java日期

当从SQL Server数据库中检索日期时间数据时,我们需要将其转换为Java中的日期时间类型。同样,我们可以使用java.sql.Timestamp类将SQL Server中的日期时间转换为Java中的日期时间。以下是一个示例代码:

import java.sql.Timestamp;

public class DateConverter {
    public static void main(String[] args) {
        Timestamp sqlTimestamp = new Timestamp(System.currentTimeMillis());
        java.util.Date javaDate = new java.util.Date(sqlTimestamp.getTime());
        System.out.println(javaDate);
    }
}

在上面的示例中,我们使用java.sql.Timestamp类表示当前日期时间,并使用java.util.Date类将其转换为Java中的日期时间类型。

3. 使用PreparedStatement插入日期

当使用PreparedStatement将数据插入到SQL Server数据库时,可以使用setTimestamp()方法将Java日期时间转换为SQL Server日期时间类型。以下是一个示例代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;

public class DateConverter {
    public static void main(String[] args) {
        String url = "jdbc:sqlserver://localhost:1433;databaseName=mydatabase";
        String username = "myusername";
        String password = "mypassword";

        try (Connection connection = DriverManager.getConnection(url, username, password)) {
            String sql = "INSERT INTO mytable (date_column) VALUES (?)";
            PreparedStatement statement = connection.prepareStatement(sql);

            Date javaDate = new Date();
            Timestamp sqlTimestamp = new Timestamp(javaDate.getTime());
            statement.setTimestamp(1, sqlTimestamp);

            int rowsAffected = statement.executeUpdate();
            System.out.println("Rows affected: " + rowsAffected);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例中,我们创建了一个PreparedStatement对象,并使用setTimestamp()方法将Java日期时间转换为SQL Server日期时间类型。然后,我们执行executeUpdate()方法将数据插入到数据库中。

关系图

erDiagram
    Date ||--o{ Timestamp
    Date ||--o{ LocalDateTime
    Timestamp ||--o{ java.sql.Timestamp
    LocalDateTime ||--o{ java.time.LocalDateTime
    java.sql.Timestamp ||--o{ java.util.Date
    java.time.LocalDateTime ||--o{ java.util.Date
    PreparedStatement ||--o{ Connection

以上就是Java日期转换为SQL Server日期的示例。通过这些代码示例,您可以轻松地将Java中的日期时间类型转换为SQL Server中的日期时间类型,并在应用程序中进行日期处理。祝您成功!