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

SQL Server 日期時間函數速查表:GETDATE、DATEADD、DATEDIFF、DATEPART、DATENAME 全解析

     編輯:關於SqlServer

日期時間運算是業務邏輯高頻區。掌握五大核心函數與 interval 參數表,覆蓋 90% 日期計算場景。

五大核心函數

函數語法返回典型用例
GETDATE()無參數DATETIME當前系統時間
DATEADD(interval, number, date)DATETIME日期加減:DATEADD(day, 2, '2024-01-01')
DATEDIFF(interval, start, end)INT間隔差:DATEDIFF(day, '2024-01-01', '2024-01-10') = 9
DATEPART(interval, date)INT數值部分:DATEPART(month, GETDATE())
DATENAME(interval, date)NVARCHAR名稱部分:DATENAME(weekday, GETDATE()) = '星期三'

Interval 參數完整對照表

單位縮寫說明
Yearyy, yyyy年 1753-9999
Quarterqq, q季度 1-4
Monthmm, m月 1-12
Day of Yeardy, y年內天數 1-366
Daydd, d日 1-31
Weekdaydw, w周內天數 1-7 (周日=1)
Weekwk, ww年內周數 0-51
Hourhh, h時 0-23
Minutemi, n分 0-59
Secondss, s秒 0-59
Millisecondms毫秒 0-999

實戰常用組合

-- 本月第一天
DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
-- 本周一
DATEADD(week, DATEDIFF(week, 0, GETDATE()), 0)
-- 今年第一天
DATEADD(year, DATEDIFF(year, 0, GETDATE()), 0)
-- 今日零點
DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
-- 當前日期字符串
CONVERT(VARCHAR(10), GETDATE(), 120)  -- '2024-01-15'
-- 當前時間字符串
CONVERT(VARCHAR(8), GETDATE(), 114)   -- '14:30:25'

跨平台注意

  • Access/ASP 用 Date()/Now() 獲取當前日期時間
  • DATEADD/DATEDIFF/DATEPART 語法一致,可移植
  • SQL Server 2008+ 推薦 SYSDATETIME() (高精度) / SYSUTCDATETIME() (UTC)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved