首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 向 MySQL 插入當前時間:使用 NOW() 或 PreparedStatement

     編輯:程式設計疑難解答

兩種主流方式:

1. SQL 函數 NOW()(最簡單)

String sql = "INSERT INTO t (create_time) VALUES (NOW())";
stmt.executeUpdate(sql);
  • 由數據庫服務器生成時間,避免應用服務器時間不同步問題。
  • 適用於不需要在 Java 端使用該時間值的場景。

2. Java 端生成 + PreparedStatement

String sql = "INSERT INTO t (create_time) VALUES (?)";
try (PreparedStatement ps = conn.prepareStatement(sql)) {
    ps.setTimestamp(1, new Timestamp(System.currentTimeMillis()));
    ps.executeUpdate();
}
  • Java 端可獲取插入的時間值(如返回給前端、寫日誌)。
  • 用 Timestamp 對應 MySQL DATETIME/TIMESTAMP。

避坑指南

  • 不要用 java.util.Date 直接 setObject,類型不匹配易報錯。
  • 數據庫列類型推薦 DATETIME(不隨時區變化)或 TIMESTAMP(自動轉換時區)。
  • 連接池配置 serverTimezone=UTC 或明確時區,避免時區偏移。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved