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

SQL Server、Oracle、DB2 常用函數對照表:字串、日期、轉換函數完整比較

     編輯:Oracle 資料庫基礎

前言

不同資料庫支援的函數各有差異,部分為通用標準,部分為特定資料庫專屬。本文整理 SQL Server、Oracle、DB2 三大主流資料庫在字串處理、日期運算、型別轉換三大類常用函數的語法差異,供開發人員跨平台開發時快速查閱參考。

一、字串函數比較

大小寫轉換

LOWER、UPPER 三者通用,語法相同:

SELECT empno, ename, deptno
FROM emp
WHERE UPPER(ename) = UPPER('blake');

字串串接

資料庫語法範例
SQL ServerSELECT 'Good' + 'String'
OracleSELECT CONCAT('Good', 'String') FROM dual;
DB2SELECT CONCAT('Good', 'String') FROM sysibm.sysdummy1;

字串操作函數

Oracle / DB2 寫法:

SELECT ename,
       CONCAT(ename, job),
       LENGTH(ename),
       INSTR(ename, 'A')
FROM emp
WHERE SUBSTR(job, 1, 5) = 'SALES';

SQL Server 等價寫法:

SELECT ename,
       (ename + job),
       LEN(ename),
       PATINDEX('%A%', ename)
FROM emp
WHERE SUBSTRING(job, 1, 5) = 'SALES';
功能Oracle/DB2SQL Server
長度LENGTHLEN
尋找字元位置INSTRPATINDEX / CHARINDEX
子字串SUBSTRSUBSTRING
串接CONCAT / ||+

二、日期函數比較

取得目前日期時間

資料庫語法
SQL ServerGETDATE()
OracleSYSDATE FROM dual
DB2CURRENT DATE FROM sysibm.sysdummy1

日期算術運算(計算週數)

Oracle: 日期相減直接得天數

SELECT ename, (SYSDATE - hiredate) / 7 weeks
FROM emp WHERE deptno = 10;

SQL Server: 使用 DATEDIFF

SELECT ename, DATEDIFF(day, hiredate, GETDATE()) / 7 weeks
FROM emp WHERE deptno = 10;

DB2: SYSDATE 含時間戳不可直接運算,需用 DAYS 函數

SELECT ename, (DAYS(CURRENT DATE) - DAYS(DATE(hiredate))) / 7 weeks
FROM emp WHERE deptno = 10;

SQL Server 日期拆解函數

  • DATEPART(datepart, date):回傳指定日期部分(year, month, day, hour, minute 等)的整數值
  • DATEDIFF(datepart, date1, date2):回傳兩日期指定單位的差值(整數)
-- 範例
SELECT DATEPART(month, GETDATE()) AS 'Month Number';
SELECT DATEDIFF(month, '1991-6-12', '1992-6-21') AS a;

三、轉換函數比較

日期轉字串

資料庫語法範例
SQL ServerCONVERT(char(10), hiredate) 或 CAST(hiredate AS char(10))
OracleTO_CHAR(hiredate, 'fmDD Month YYYY')
DB2CHAR(CURRENT DATE), CHAR(CURRENT TIME)

總結

跨資料庫開發時,掌握核心函數的語法對照能大幅降低移植成本。建議將常用對照表整理為團隊共享文件,並在程式碼中封裝資料庫無關的工具類,進一步提升可維護性。

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