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

SQL Server 核心函數速查手冊:字串、數學、日期與系統函數全解析

     編輯:關於SqlServer

前言

熟練掌握 T-SQL 內建函數是資料庫開發與優化的基礎。本文系統整理 SQL Server 常用的四大類函數:字串、數學、日期時間與系統函數,並附上語法說明與典型應用場景,供開發人員快速查閱。

一、字串函數

1. 長度與分析

函數語法說明範例
DATALENGTHDATALENGTH(char_expr)返回字串位元組長度(不含尾端空格)DATALENGTH('ABC ') → 3
SUBSTRINGSUBSTRING(expression, start, length)擷取子字串SUBSTRING('Hello', 2, 3) → 'ell'
RIGHTRIGHT(char_expr, int_expr)取右側指定長度字元RIGHT('SQLServer', 6) → 'Server'

2. 字元操作

函數語法說明
UPPERUPPER(char_expr)轉大寫
LOWERLOWER(char_expr)轉小寫
SPACESPACE(int_expr)產生指定數量空白字元
REPLICATEREPLICATE(char_expr, int_expr)重複字串 N 次
REVERSEREVERSE(char_expr)反轉字串
STUFFSTUFF(char_expr1, start, length, char_expr2)刪除字串指定區段並插入新字串
LTRIM / RTRIMLTRIM(char_expr) / RTRIM(char_expr)移除左側/右側空白
ASCII / CHARASCII(char) / CHAR(ascii)字元與 ASCII 碼互轉

3. 字串查找

函數語法說明
CHARINDEXCHARINDEX(char_expr, expression)返回子字串首次出現位置(1-based),找不到回傳 0
PATINDEXPATINDEX('%pattern%', expression)支援萬用字元模式比對,返回首次匹配位置

二、數學函數

函數語法說明
ABSABS(numeric_expr)絕對值
CEILINGCEILING(numeric_expr)大於等於指定值的最小整數
EXPEXP(float_expr)自然指數 e^x
FLOORFLOOR(numeric_expr)小於等於指定值的最大整數
PIPI()返回圓周率 3.1415926…
POWERPOWER(numeric_expr, power)冪運算
RANDRAND([int_expr])隨機數(可選種子)
ROUNDROUND(numeric_expr, int_expr)四捨五入至指定精度
SIGNSIGN(int_expr)正/零/負 返回 +1/0/-1
SQRTSQRT(float_expr)平方根

三、日期時間函數

1. 核心函數

函數語法說明
GETDATEGETDATE()取得目前系統日期時間
DATENAMEDATENAME(datepart, date_expr)返回日期部分的名稱(如 'June'、'Monday')
DATEPARTDATEPART(datepart, date_expr)返回日期部分的整數值
DATEDIFFDATEDIFF(datepart, start, end)兩日期間的差值
DATEADDDATEADD(datepart, number, date_expr)日期加減運算

2. datepart 參數對照表

縮寫範圍意義
yy / yyyy1753-9999年
qq / q1-4季
mm / m1-12月
dy / y1-366年間第幾天
dd / d1-31日
wk / ww1-54週
dw / w1-7星期幾
hh0-23時
mi / n0-59分
ss / s0-59秒
ms0-999毫秒

3. 日期轉換

使用 CONVERT(data_type, expression, style) 進行日期格式化,常用 style 代碼:

  • 101: mm/dd/yyyy (美式)
  • 102: yyyy.mm.dd (ANSI)
  • 103: dd/mm/yyyy (英式)
  • 112: yyyymmdd (ISO 無分隔)
  • 120: yyyy-mm-dd hh:mi:ss (ODBC 標準)

四、系統函數

函數說明
SUSER_NAME()登入帳號名稱
USER_NAME()資料庫使用者名稱
USER同 USER_NAME()
SHOW_ROLE()當前使用者生效角色
DB_NAME()目前資料庫名稱
OBJECT_NAME(obj_id)物件名稱
COL_NAME(obj_id, col_id)欄位名稱
COL_LENGTH(obj_name, col_name)欄位定義長度
VALID_NAME(char_expr)驗證是否為合法識別碼

實務建議

  • 字串比較、查找時優先使用 CHARINDEX 而非 PATINDEX,效能較佳。
  • 日期運算盡量用 DATEADD/DATEDIFF 避免字串轉換。
  • 大量資料運算時,將標量函數改寫為內聯表值函數或直接在查詢中運算,減少函數呼叫開銷。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved