数据类型·时间

SQL相关时间

 
java.sql.Date:
对应SQL的DATE类型,只包含日期信息(年、月、日),不包含时间信息。

java.util.Date utilDate = new java.util.Date();  
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
    

 
java.sql.Time:
对应SQL的TIME类型,只包含时间信息(时、分、秒),不包含日期信息。

java.util.Date utilDate = new java.util.Date();  
java.sql.Time sqlTime = new java.sql.Time(utilDate.getTime());
    

 
java.sql.Timestamp:
对应SQL的TIMESTAMP或DATETIME类型,包含日期和时间信息,通常也包含时区或时差信息

java.util.Date utilDate = new java.util.Date();  
java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp(utilDate.getTime());


  
在实际应用中,当你使用JDBC(Java Database Connectivity)与数据库交互时,
你会使用PreparedStatement来设置参数。
例如,如果你有一个TIMESTAMP字段在数据库中,你可以这样设置参数:

在实际应用中,当你使用JDBC(Java Database Connectivity)与数据库交互时,
你会使用PreparedStatement来设置参数。
例如,如果你有一个TIMESTAMP字段在数据库中,你可以这样设置参数:

 
PreparedStatement pstmt = connection.prepareStatement("INSERT INTO my_table (my_timestamp_column) VALUES (?)");  
pstmt.setTimestamp(1, sqlTimestamp);  
pstmt.executeUpdate();
    

 
此外,从Java 8开始,新的日期和时间API(如LocalDate, LocalTime, LocalDateTime等)
提供了更强大和灵活的功能。但是,当与数据库交互时,
你可能仍然需要将这些类型转换为java.sql.Date, java.sql.Time或java.sql.Timestamp,
除非你的JDBC驱动和数据库支持这些新的Java 8日期和时间类型。
    

java.sql.Date

 
import java.sql.Date;
import java.text.SimpleDateFormat;

class JavaSqlDateExample {
    public static void test_date() {
        // 创建一个 java.sql.Date 实例(假设为当前日期)
        java.util.Date utilDate = new java.util.Date();
        java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

        // 创建一个 SimpleDateFormat 对象来定义输出格式
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        // 使用 SimpleDateFormat 对象将 java.sql.Date 转换为字符串
        String dateString = dateFormat.format(sqlDate);

        // 输出转换后的字符串
        //The java.sql.Date as a string is: 2024-07-05 15:27:47
        //实际的结果是java.sql.Date也是有秒的
        System.out.println("The java.sql.Date as a string is: " + dateString);
    }
}
    
    

 
java.sql.Date兼容Oracle的SYSDATE 
    

 

    

 

    

 


 

  

 


参考