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

SQL Server CONVERT 與 C# DateTime 格式化完整對照表

     編輯:關於SqlServer

前言

日期時間格式化是資料庫與應用程式開發的高頻需求。SQL Server CONVERT 提供超過 30 種樣式代碼,C# DateTime 則支援標準/自訂格式字串。本文整理兩大平台最常用的格式對照,方便快速查閱。

一、SQL Server CONVERT 樣式代碼大全

語法:CONVERT(varchar(100), GETDATE(), style)

Style輸出範例說明
0 / 10005 16 2006 10:57AM預設 mon dd yyyy hh:miAM/PM
105/16/06美式 mm/dd/yy
206.05.16yy.mm.dd
316/05/06英式 dd/mm/yy
416.05.06dd.mm.yy
516-05-06dd-mm-yy
616 05 06dd mm yy
705 16, 06Mon dd, yy
8 / 24 / 10810:57:46hh:mi:ss (24H)
9 / 10905 16 2006 10:57:46:827AM含毫秒 + AM/PM
1005-16-06mm-dd-yy
1106/05/16yy/mm/dd
12060516yymmdd
13 / 11316 05 2006 10:57:46:937dd mon yyyy hh:mi:ss:mmm (24H)
14 / 11410:57:46:967hh:mi:ss:mmm (24H)
20 / 1202006-05-16 10:57:47ODBC 標準 yyyy-mm-dd hh:mi:ss (24H)
21 / 1212006-05-16 10:57:47.157ODBC + 毫秒
2205/16/06 10:57:47 AMmm/dd/yy hh:mi:ss AM/PM
232006-05-16ISO 8601 日期 yyyy-mm-dd
252006-05-16 10:57:47.250yyyy-mm-dd hh:mi:ss.mmm
10105/16/2006mm/dd/yyyy
1022006.05.16yyyy.mm.dd
10316/05/2006dd/mm/yyyy
10416.05.2006dd.mm.yyyy
10516-05-2006dd-mm-yyyy
10616 05 2006dd mon yyyy
10705 16, 2006Mon dd, yyyy
11005-16-2006mm-dd-yyyy
1112006/05/16yyyy/mm/dd
11220060516yyyymmdd (適合排序/檔名)
1262006-05-16T10:57:49.827ISO 8601 含 T 分隔
13018 ??? ???? 1427 10:57:49:907AM回曆日期
13118/04/1427 10:57:49:920AM回曆 dd/mm/yyyy

💡 實務常用推薦

  • 純日期:23 (yyyy-mm-dd) 或 112 (yyyymmdd)
  • 純時間:8 / 24 / 108 (hh:mi:ss)
  • 完整日期時間:120 (yyyy-mm-dd hh:mi:ss) 或 121 (含毫秒)
  • JSON/API 傳輸:126 (ISO 8601 標準)

二、C# DateTime 格式化速查

1. 標準格式字串

格式輸出範例 (2005-11-05 14:06:25)說明
d2005-11-05短日期
D2005年11月5日長日期
f2005年11月5日 14:06完整日期時間 (短時間)
F2005年11月5日 14:06:23完整日期時間 (長時間)
g2005-11-5 14:06一般日期時間 (短時間)
G2005-11-5 14:06:23一般日期時間 (長時間)
M / m11月5日月日
r / RSat, 05 Nov 2005 14:06:25 GMTRFC1123
s2005-11-05T14:06:25可排序日期時間 (ISO 8601)
t14:06短時間
T14:06:23長時間
u2005-11-05 14:06:25Z通用可排序 (UTC)
U2005年11月5日 6:23:23完整日期時間 (UTC)
y / Y2005年11月年月

2. 自訂格式字串常用語彙

yyyy  四位年份    MM    月份(01-12)    dd    日(01-31)
HH    24小時(00-23)  hh    12小時(01-12)  mm    分鐘(00-59)
ss    秒(00-59)     fff   毫秒(000-999)  zzz   時區偏移

範例:dt.ToString("yyyyMMddHHmmssfff") → 20051105140625123

3. 實用屬性與方法

  • dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second, dt.Millisecond
  • dt.DayOfWeek (列舉)、dt.DayOfYear、dt.Ticks、dt.TimeOfDay
  • dt.AddYears(1), dt.AddDays(-1), dt.AddHours(2.5) 等運算
  • dt.ToUniversalTime(), dt.ToLocalTime() 時區轉換
  • dt.GetDateTimeFormats('s')[0] 取得特定標準格式的所有文化特性變體

三、跨平台格式對照建議

場景SQL ServerC#
資料庫儲存/比對CONVERT(..., 23) → '2006-05-16'dt.ToString("yyyy-MM-dd")
檔名/批次代碼CONVERT(..., 112) → '20060516'dt.ToString("yyyyMMdd")
API 回傳/JSONCONVERT(..., 126) → '2006-05-16T10:57:49.827'dt.ToString("o") 或 "yyyy-MM-ddTHH:mm:ss.fff"
使用者顯示 (繁中)CONVERT(..., 111) → '2006/05/16'dt.ToString("yyyy年M月d日")

四、避坑提醒

  1. 兩位數年份:Style 1,2,3,4,5,6,7,10,11,12 皆為 yy,跨世紀易誤判,建議改用 101-112 四位數年份。
  2. 語系影響:Style 0, 7, 9, 13, 100, 106, 107, 109, 113 輸出月份縮寫 (Jan, Feb...) 受 SET LANGUAGE 影響,多語系環境慎用。
  3. C# 格式字串區分大小寫:MM (月) vs mm (分),HH (24H) vs hh (12H)。
  4. 預設 ToString():等同 G 格式,受 CurrentCulture 影響,跨伺服器部署請明確指定格式或 CultureInfo.InvariantCulture。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved