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

SQL Server 字串與日期時間函數實戰速查手冊

     編輯:關於SqlServer

字串處理與日期時間運算是 SQL 查詢中最高頻的操作場景。本文整理 SQL Server 中最常用的字串函數與時間函數,分類說明語法與實戰範例,方便開發人員快速查閱與應用。

一、字串函數

1. 大小寫轉換

  • UPPER('字串'):轉為大寫
  • LOWER('字串'):轉為小寫
SELECT UPPER('AsaR');  -- 回傳 'ASAR'

2. 長度計算

  • LEN('字串'):傳回字元數(不含尾端空白)
  • DATALENGTH('字串'):傳回位元組數

3. 移除空白

  • LTRIM('字串'):移除左側空白
  • RTRIM('字串'):移除右側空白

4. 字串擷取

  • LEFT('字串', 長度):從左側起擷取指定字元數
  • RIGHT('字串', 長度):從右側起擷取指定字元數
  • SUBSTRING('字串', 起始位置, 長度):從指定位置擷取指定長度

5. 字串替換

REPLACE('原字串', '舊字串', '新字串')
-- 範例:將 '你們' 替換為 '我們'
SELECT REPLACE('你們', '你', '我');  -- 回傳 '我們'

二、日期時間函數

1. 取得目前日期時間

GETDATE()

2. 日期加減運算

-- 100 天後
DATEADD(DAY, 100, GETDATE())

-- 也可用於月、年、時、分、秒等單位

3. 日期差值計算

-- 計算兩個日期相差的年數
DATEDIFF(YEAR, '1990/10/11', GETDATE())

4. 擷取年、月、日

  • YEAR(日期)、MONTH(日期)、DAY(日期)

實戰範例:統計各年份出生人數

SELECT YEAR(birthday) AS 出生年份, COUNT(*) AS 人數
FROM 表名
GROUP BY YEAR(birthday);

5. 精確擷取日期時間元件

DATEPART 函數可擷取更細緻的時間單位:

DATEPART(YEAR, 日期)
DATEPART(MONTH, 日期)
DATEPART(DAY, 日期)
DATEPART(HOUR, 日期)
DATEPART(MINUTE, 日期)
DATEPART(SECOND, 日期)

進階技巧

  • 字串函數常搭配 WHERE 條件進行資料清洗,如移除匯入資料中的多餘空白。
  • 日期運算時注意隱含轉換,建議明確使用 CAST 或 CONVERT 指定格式。
  • DATEPART 與 YEAR/MONTH/DAY 功能重疊,前者更彈性,後者語法更簡潔,視可讀性選擇。

熟練掌握這些內建函數,能大幅簡化 T-SQL 程式碼,提升查詢效能與可維護性。

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