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

Oracle 常用函數速查:數值、字串、日期與轉換對照

     編輯:Oracle 資料庫基礎

前言

整理 Oracle 與 SQL Server 常用函數對照表,方便跨平台開發與移植參考。所有 Oracle 範例均需加 FROM DUAL 執行。

一、數學函數

功能SQL ServerOracle備註
絕對值ABS(-1)ABS(-1)
無條件進位CEILING(-1.001)CEIL(-1.001)
無條件捨去FLOOR(-1.001)FLOOR(-1.001)
截取整數CAST(-1.002 AS INT)TRUNC(-1.002)
四捨五入ROUND(1.23456,4)ROUND(1.23456,4)Oracle 回傳 1.2346
e 次方EXP(1)EXP(1)
自然對數LOG(2.718...)LN(2.718...)
以 10 為底對數LOG10(10)LOG(10,10)Oracle 語法 LOG(base, value)
平方SQUARE(4)POWER(4,2)
平方根SQRT(4)SQRT(4)
任意次方POWER(3,4)POWER(3,4)
隨機數RAND()DBMS_RANDOM.VALUE(0,1)
正負號SIGN(-8)SIGN(-8)
圓周率PI()無內建,可用 ACOS(-1)
三角函數SIN/COS/TAN (弧度)SIN/COS/TAN (弧度)
反三角函數ASIN/ACOS/ATAN/ATAN2ASIN/ACOS/ATAN/ATAN2回傳弧度
弧度↔角度DEGREES/RADIANS無內建Oracle 需自行計算
最大值MAX() 子查詢GREATEST(1,-2,4,3)
最小值MIN() 子查詢LEAST(1,-2,4,3)
NULL 處理ISNULL(F2,10)NVL(F2,10)

二、字串函數

功能SQL ServerOracle備註
ASCII 碼ASCII('a')ASCII('a')
碼轉字元CHAR(97)CHR(97)
串接'11'+'22'+'33'CONCAT('11','22') || '33'Oracle CONCAT 僅兩參數,常用 ||
子串位置CHARINDEX('s','sdsq',2)INSTR('sdsq','s',2)
模糊搜尋位置PATINDEX('%d%q%','sdsfasdqe')INSTR 配合第 4 參數控制出現次數Oracle 無 PATINDEX
取子串SUBSTRING('abcd',2,2)SUBSTR('abcd',2,2)
子串取代STUFF('abcdef',2,3,'ijklmn')REPLACE('abcdef','bcd','ijklmn')
全域取代無TRANSLATE('fasdbfasegas','fa','我')字元對字元對應取代
長度LEN/DATALENGTHLENGTH
大小寫轉換LOWER/UPPERLOWER/UPPER
首字大寫無INITCAP('abcd dsaf')
左補字元SPACE(10)+'abcd'LPAD('abcd',14)預設補空格
右補字元'abcd'+SPACE(10)RPAD('abcd',14)
去除空格LTRIM/RTRIMLTRIM/RTRIM/TRIMTRIM 可同時去首尾
重複字串REPLICATE('abcd',2)無內建可用 RPAD/LPAD 技巧
發音相似SOUNDEX/DIFFERENCESOUNDEXOracle 無 DIFFERENCE

三、日期函數

功能SQL ServerOracle備註
系統時間GETDATE()SYSDATE
日期加減天DATEADD/直接 +/-直接 +/- 整數Oracle: SYSDATE+1 為明天
取日期部份CONVERT(CHAR(10),GETDATE(),20)TRUNC(SYSDATE) 或 TO_CHAR(SYSDATE,'YYYY-MM-DD')
取時間部份CONVERT(CHAR(8),GETDATE(),108)TO_CHAR(SYSDATE,'HH24:MI:SS')
日期部份擷取DATEPART/DATENAMETO_CHAR(SYSDATE, '格式')格式參數見下表
當月最後一天無LAST_DAY(SYSDATE)
本週指定 weekday無NEXT_DAY(SYSDATE, 7) -- 7=星期六參數 1-7 代表 星期日-六
字串轉日期CAST('2004-09-08' AS DATETIME)TO_DATE('2004-01-05 22:09:38','YYYY-MM-DD HH24:MI:SS')
兩日期差值(秒)DATEDIFF(ss, d1, d2)(d1-d2)*24*60*60Oracle 相減得天數小數
日期加減分鐘DATEADD(mi, 8, GETDATE())SYSDATE + 8/60/24
時區轉換無NEW_TIME(SYSDATE, 'YDT', 'GMT')參數見下表

TO_CHAR / TO_DATE 常用格式參數

意義Oracle 參數
年YY, YYYY
季Q
月MM, MON, MONTH
日DD, DDD
時(12/24)HH12, HH24
分MI
秒SS

NEW_TIME 時區參數對照

代碼說明
AST/ADT大西洋標準/夏令時間
BST/BDT白令海標準/夏令時間
CST/CDT中部標準/夏令時間
EST/EDT東部標準/夏令時間
GMT格林威治標準時間
HST/HDT阿拉斯加/夏威夷標準/夏令時間
MST/MDT山區標準/夏令時間
PST/PDT太平洋標準/夏令時間
YST/YDT育空標準/夏令時間

註:北京時間屬東八區,對應 YDT(或自行換算 GMT+8)。

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