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

SQL Server 2008 全新日期時間資料類型深度解析

     編輯:關於SqlServer

SQL Server 2008 引入全新日期時間資料類型,解決舊版 DATETIME 與 SMALLDATETIME 在日期範圍、時間精度、儲存效率上的諸多限制,為開發者提供更精準、彈性的時間資料建模能力。

舊版類型回顧與痛點

類型儲存大小日期範圍時間精度
DATETIME8 Bytes1753-01-01 ~ 9999-12-313.33 毫秒
SMALLDATETIME4 Bytes1900-01-01 ~ 2079-06-06分鐘

痛點:無法儲存 1753 年前日期、時間精度不足、日期與時間無法分離儲存、遷移異構資料來源困難。

新類型家族詳細規範

1. DATE — 純日期

  • 範圍:0001-01-01 ~ 9999-12-31
  • 儲存:3 Bytes
  • 格式:YYYY-MM-DD

2. TIME — 純時間

  • 精度:0~7 位小數秒(100 奈秒)
  • 儲存:3~5 Bytes(視精度)
  • 格式:hh:mm:ss[.nnnnnnn]

3. DATETIME2 — 高精度日期時間

  • 日期範圍:0001-01-01 ~ 9999-12-31(同 DATE)
  • 時間精度:0~7 位小數秒,可指定 DATETIME2(n)
  • 儲存:6~8 Bytes(視精度)
  • 相容性:DATETIME2(3) 等同舊 DATETIME 但精度 1ms、省 1 Byte;DATETIME2(7) 達 100ns 精度。

4. DATETIMEOFFSET — 帶時區位移

  • 在 DATETIME2 基礎上增加 +hh:mm 時區位移
  • 儲存:8~10 Bytes
  • 適用全球化應用與分散式系統時間統一。

精度與儲存對照表

DATETIME2 精度與儲存大小對照表

實務建議

  • 新專案優先採用 DATE/TIME/DATETIME2,依業務需求選擇精度,兼顧儲存效率與查詢效能。
  • 遷移舊系統時,評估日期範圍與精度需求,選擇對應新類型,避免資料截斷或精度遺失。
  • DATETIME2(7) 雖精度極高,但無法保證單表時間值唯一,高併發寫入仍需額外機制(如 SEQUENCE、ROWVERSION)保證排序。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved