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

DB2 常用內建函數速查表 (第 6 部分:數學、字串、日期時間)

     編輯:DB2 教學

數學函數

函數說明範例
ABS / ABSVAL絕對值ABS(-3.4) → 3.4
ACOS反余弦 (弧度)ACOS(0.9)
ASIN反正弦 (弧度)ASIN(0.9)
ATAN反正切 (弧度)ATAN(0.9)
ATAN2(y, x)座標 (x,y) 反正切ATAN2(0.5, 0.9)
CEILING / CEIL大於等於參數的最小整數CEILING(3.56) → 4
FLOOR小於等於參數的最大整數FLOOR(88.93) → 88
ROUND(exp, n)四捨五入至小數點後 n 位ROUND(2345.6789, 2) → 2345.68
TRUNCATE / TRUNC(exp, n)截斷至小數點後 n 位TRUNCATE(345.6789, 2) → 345.67
SQRT平方根SQRT(36) → 6
POWER(base, exp)冪函數POWER(2, 5) → 32
MOD(m, n)餘數MOD(20, 8) → 4
RAND()0~1 隨機浮點數RAND()
EXP指數函數 e^xEXP(2)
LOG / LN自然對數LOG(10)
LOG10以 10 為底對數LOG10(100) → 2
SIGN正負號 (-1/0/1)SIGN(-5) → -1

型別轉換函數

函數說明範例
BIGINT轉 64 位整數BIGINT('123')
CHAR(value, format?)轉字串 (日期/數值可指定格式)CHAR(SALARY, ','), CHAR(CURRENT DATE)
VARCHAR(len)轉變長字串VARCHAR(EMP_NAM, 50)
DOUBLE轉雙精度浮點數DOUBLE('5678')
REAL轉單精度浮點數REAL(10)
FLOAT轉浮點數 (同 DOUBLE)FLOAT(789)
DECIMAL(p, s)轉定點數DECIMAL(123.456, 5, 2)
INTEGER / INT轉 32 位整數INT('100')
SMALLINT轉 16 位整數SMALLINT('10')
HEX轉 16 進位字串HEX(16) → '10'
CAST(expr AS type)標準 SQL 轉型CAST(CURRENT TIME AS CHAR(8))

字串函數

函數說明範例
CONCAT(s1, s2) / s1 || s2字串連接CONCAT(EMP_NO, EMP_NAM)
SUBSTR(str, start, len?)子字串 (1-based)SUBSTR('ABCDEF', 3, 2) → 'CD'
LOCATE(find, in)尋找子字串位置 (1-based, 0=不存在)LOCATE('y', 'dfdasfay') → 8
POSSTR(source, target)同 LOCATE 參數順序相反POSSTR('ABCDEFGH', 'D') → 4
LTRIM / RTRIM / TRIM移除左/右/兩側空格LTRIM(' ABC') → 'ABC'
UPPER / UCASE轉大寫UPPER('abc') → 'ABC'
LOWER / LCASE轉小寫LOWER('ABC') → 'abc'
REPLACE(src, old, new)替換所有出現REPLACE('ROMANDD', 'NDD', 'CCB')
REPEAT(str, n)重複 n 次REPEAT('AB', 3) → 'ABABAB'
SPACE(n)產生 n 個空格SPACE(5)
LENGTH字串長度 (位元組)LENGTH('ABC') → 3
CHAR_LENGTH字元數CHAR_LENGTH('中文') → 2
CHR / CHAR(code)ASCII 碼轉字元CHR(65) → 'A'
ASCII(str)首字元 ASCII 碼ASCII('A') → 65
HEX轉 16 進位HEX(255) → 'FF'

日期時間函數

函數說明範例
YEAR(dt)年份YEAR('2003/01/02') → 2003
MONTH(dt)月份MONTH('2003/10/20') → 10
DAY(dt) / DAYOFMONTH日期DAY('2003-10-20') → 20
HOUR(tm)小時HOUR('18:34:23') → 18
MINUTE(tm)分鐘MINUTE('18:34:23') → 34
SECOND(tm)秒SECOND('18:34:32') → 32
MICROSECOND(ts)微秒MICROSECOND('2001-03-19.12.30.123456') → 123456
DATE(dt)取日期部分DATE('2001-03-19.12.30.123456') → 2001-03-19
TIME(tm)取時間部分TIME('2001-03-19.12.30.123456') → 12.30.12
TIMESTAMP(dt, tm)合併日期時間TIMESTAMP('2003-10-20', '18:34:23')
CURRENT DATE / TIME / TIMESTAMP系統當前值CURRENT TIMESTAMP
DAYS(dt)從 0001-01-01 起算天數DAYS('2001-06-05') - DAYS('2001-04-01') → 日期差
DATEADD / TIMESTAMPADD日期/時間加減DATEADD(DAY, 10, CURRENT DATE)
DATEDIFF / TIMESTAMPDIFF日期/時間差DATEDIFF(DAY, '2003-01-01', '2003-12-31')

彙總函數

函數說明
AVG平均值
COUNT / COUNT(*)筆數 / 非空值筆數
SUM總和
MAX / MIN最大/最小值
STDDEV標準差
VARIANCE / VAR變異數
CORRELATION / CORR相關係數
COVARIANCE / COVAR共變異數

條件/控制函數

函數說明範例
COALESCE(v1, v2, ...)回傳第一個非 NULL 值COALESCE(MGRNO, 'ABSENT')
NULLIF(e1, e2)相等回傳 NULL,否則回傳 e1NULLIF(A, B)
CASE WHEN ... THEN ... ELSE ... END條件運算 (類 Oracle DECODE)CASE A1 WHEN '1' THEN 'N1' ELSE 'N3' END
NODENUMBER(row)資料分區節點號NODENUMBER(EMP_NO)

使用提醒

  • 所有函數名稱不分大小寫。
  • 日期/時間字串格式建議使用 ISO 標準 YYYY-MM-DD、HH:MM:SS、YYYY-MM-DD-HH.MM.SS。
  • 字串函數在 DBCS (雙位元組字元集) 環境下行為可能不同,注意 LENGTH vs CHAR_LENGTH。
  • 完整函數清單請參考 DB2 SQL Reference Volume 1。本表僅列常用項目。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved