首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle TIMESTAMP 型別資料插入完整範例:JDBC 與 SQL 兩種方式

     編輯:Oracle 教學

Oracle TIMESTAMP 型別資料插入完整範例:JDBC 與 SQL 兩種方式

Oracle TIMESTAMP 型別精度達毫秒/微秒,含時區資訊。插入時需將字串正確轉型。本文提供 JDBC PreparedStatement 完整程式碼與純 SQL TO_TIMESTAMP 用法,涵蓋時區、格式化與常見錯誤。

一、建表結構

CREATE TABLE test_ts (
  id INTEGER,
  birth_ts TIMESTAMP
);

二、JDBC 完整範例

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

public class TimestampInsertDemo {
  static {
    try { Class.forName("oracle.jdbc.driver.OracleDriver"); }
    catch (ClassNotFoundException e) { e.printStackTrace(); }
  }

  public static Connection getConn() throws SQLException {
    return DriverManager.getConnection(
      "jdbc:oracle:thin:@localhost:1521/orcl", "root", "root");
  }

  public static void main(String[] args) throws SQLException {
    String sql = "INSERT INTO test_ts(id, birth_ts) VALUES (?, TO_TIMESTAMP(?, 'YYYY-MM-DD HH24:MI:SS'))";
    try (Connection conn = getConn();
         PreparedStatement ps = conn.prepareStatement(sql)) {

      ps.setInt(1, 1);
      // 方式 1:Java 端格式化字串,DB 端 TO_TIMESTAMP 轉型
      String nowStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
      ps.setString(2, nowStr);

      // 方式 2:直接傳 java.sql.Timestamp 物件(推薦,免格式化)
      // ps.setTimestamp(2, new Timestamp(System.currentTimeMillis()));

      ps.executeUpdate();
      System.out.println("插入成功");
    }
  }
}

三、關鍵技術點

  1. TO_TIMESTAMP 格式模型:YYYY-MM-DD HH24:MI:SS(24 小時制),毫秒用 FF3,微秒用 FF6
  2. PreparedStatement 參數化:防 SQL 注入、避免格式字串拼接錯誤
  3. 直接傳 Timestamp 物件:ps.setTimestamp(idx, new Timestamp(System.currentTimeMillis())),JDBC 驅動自動對應 DB TIMESTAMP,最簡潔安全
  4. 時區處理:TIMESTAMP WITH TIME ZONE 需用 TO_TIMESTAMP_TZ,格式含 TZH:TZM 或 TZR

四、純 SQL 插入範例

錯誤現象原因修正
ORA-01830: 日期格式圖片不符字串格式與格式模型不匹配核對字串長度、分隔符、24/12 小時制
ORA-01843: 非有效月份月份值 >12 或格式模型月份位置錯確認 MM vs MON、字串實際月份
插入時間偏移數小時DB 時區與 Session 時區不一致用 TIMESTAMP WITH TIME ZONE 或統一 Session TIME_ZONE

							
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved