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

DB2 常用函數分類速查:類型轉換、日期時間、字串、數學與 Oracle 對照表

     編輯:DB2 教學

DB2 核心內建函數四大類 + Oracle 語法對照速查卡

DB2 函數命名多遵循 SQL 標準,與 Oracle 有異有同。按功能分類整理,附雙邊對照表,適合遷移開發隨身攜帶。

1. 類型轉換函數


DECIMAL  DOUBLE  INTEGER  SMALLINT  REAL
HEX(arg)  DATE  TIME  TIMESTAMP  CHAR  VARCHAR
功能OracleDB2
數值 → 字串TO_CHAR(15.5)CHAR(15.5)
字串 → 日期TO_DATE('2008-01-01','YYYY-MM-DD')DATE('2008-01-01')

2. 日期時間函數


YEAR  QUARTER  MONTH  WEEK  DAY  HOUR  MINUTE  SECOND
DAYOFYEAR  DAYOFWEEK  DAYS  MIDNIGHT_SECONDS
MONTHNAME  DAYNAME
功能OracleDB2
當前日期時間SYSDATECURRENT DATE / CURRENT TIMESTAMP
日期 + N 天SYSDATE + INTERVAL '1' DAYCURRENT DATE + 1 DAY

3. 字串函數


LENGTH  LCASE/UCASE  LTRIM  RTRIM
COALESCE  CONCAT  INSERT  LEFT  LOCATE  POSSTR
REPEAT  REPLACE  RIGHT  SPACE  SUBSTR
功能OracleDB2
空值轉預設NVL(NULL,'aaa')COALESCE(comm, 1000)
去空格TRIM(' abc ')LTRIM(RTRIM(' abc '))
去左空格TRIM(LEADING FROM ' abc ')LTRIM(' abc ')
去右空格TRIM(TRAILING FROM ' abc ')RTRIM(' abc ')
大寫UPPER('abc')UPPER('abc') / UCASE('abc')
字串連接'abcd' || 'efg' / CONCAT'abcd' || 'efg' / CONCAT

4. 數學函數


ABS  COUNT  MAX  MIN  SUM
CEIL  FLOOR  MOD  RAND  POWER
ROUND  SIGN  TRUNCATE
函數說明範例
CEIL(arg)≥ arg 最小整數CEIL(3.2) → 4
FLOOR(arg)≤ arg 最大整數FLOOR(3.8) → 3
MOD(arg1,arg2)arg1 % arg2, 符號同 arg1MOD(-5,3) → -2
RAND()0-1 隨機數RAND() → 0.738
POWER(arg1,arg2)arg1^arg2POWER(2,10) → 1024
ROUND(arg1,arg2)四捨五入 arg2 位ROUND(3.14159,2) → 3.14
TRUNCATE(arg1,arg2)截斷 arg2 位TRUNCATE(3.14159,2) → 3.14

高頻遷移差異提醒

  • **TRIM**:Oracle 單函數支援 LEADING/TRAILING/BOTH;DB2 需拆分 LTRIM/RTRIM
  • **日期格式化**:Oracle `TO_DATE` 格式模板極靈活;DB2 `DATE`/`TIMESTAMP` 支援格式較固定,複雜格式需預處理
  • **空值處理**:Oracle `NVL`/`NVL2`/`COALESCE`;DB2 主用 `COALESCE` (標準 SQL)
  • **取前 N 列**:Oracle `ROWNUM`/`FETCH FIRST` (12c+);DB2 `FETCH FIRST N ROWS ONLY` (標準語法)

函數遷移核心在於**「語義對齊 > 語法對齊」**——理解標準 SQL 定義,再看各廠商實作差異,遷移才不會走彎路。

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