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

Oracle 正確插入系統時間:SYSDATE、TO_DATE 格式與分隔符容錯測試

     編輯:Oracle 資料庫基礎

直接插入當前時間

INSERT INTO test VALUES (2, 'cba', SYSDATE);
-- SYSDATE 回傳 DATE 型別,含年月日時分秒,無時區資訊

查詢特定日期區間(精確到秒)

SELECT * FROM dg_order
WHERE DATE_XD_DR >= TO_DATE('2009-11-01 00:00:00','YYYY-MM-DD HH24:MI:SS')
  AND DATE_XD_DR <  TO_DATE('2009-11-02 00:00:00','YYYY-MM-DD HH24:MI:SS');

關鍵技巧:使用 >= 當天 00:00:00 且 < 翌日 00:00:00,避免 BETWEEN 邊界含秒問題,亦可利用索引範圍掃描。

TO_DATE 格式字串與分隔符容錯實測

只要格式模型與輸入字串一一對應,分隔符(-、/、;、,)可任意混用:

輸入字串格式模型結果
'2009/11/01 12:00:00''YYYY-MM-DD HH24:MI:SS'成功
'2009;11;01 12:00:00''YYYY-MM-DD HH24:MI:SS'成功
'2009,11/01 12:00:00''YYYY-MM-DD HH24:MI:SS'成功
'2009-11-01 12:00:00''YYYY-MM-DD HH24:MI:SS'成功
'2009/11-01 12:00:00''YYYY;MM-DD HH24:MI:SS'成功

Oracle 解析時僅比對數字欄位順序與長度,分隔符被忽略,極大提升 ETL 容錯率。

常用時間函數速查

  • SYSTIMESTAMP:含毫秒與時區的 TIMESTAMP WITH TIME ZONE。
  • CURRENT_DATE / CURRENT_TIMESTAMP:Session 時區時間。
  • TRUNC(SYSDATE):當天 00:00:00。
  • ADD_MONTHS(TRUNC(SYSDATE),-1):上月同一天 00:00:00。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved