T-SQL 日期轉換說明 , 相當實用

來源網站

CONVERT
將某種資料類型的運算式顯式轉換為另一種資料類型。由於某些需求經常用到取日期格式的不同.現以下可在
SQL Server中 將日期格式化.

SQL Server 支援使用科威特演算法的阿拉伯樣式中的資料格式。

在表中,左側的兩列表示將 datetimesmalldatetime 轉換為字元資料的 style 值。給 style 值加 100,可獲得包括世紀數位的四位年份 (yyyy)。

不帶世紀數位 (yy)

帶世紀數位 (yyyy)


標準


輸入/輸出**

-

0 或 100 (*)

預設值

mon dd yyyy hh:miAM(或 PM)

1

101

美國

mm/dd/yyyy

2

102

ANSI

yy.mm.dd

3

103

英國/法國

dd/mm/yy

4

104

德國

dd.mm.yy

5

105

義大利

dd-mm-yy

6

106

-

dd mon yy

7

107

-

mon dd, yy

8

108

-

hh:mm:ss

-

9 或 109 (*)

預設值 + 毫秒

mon dd yyyy hh:mi:ss:mmmAM(或 PM)

10

110

美國

mm-dd-yy

11

111

日本

yy/mm/dd

12

112

ISO

yymmdd

-

13 或 113 (*)

歐洲預設值 + 毫秒

dd mon yyyy hh:mm:ss:mmm(24h)

14

114

-

hh:mi:ss:mmm(24h)

-

20 或 120 (*)

ODBC 規範

yyyy-mm-dd hh:mm:ss[.fff]

-

21 或 121 (*)

ODBC 規範(帶毫秒)

yyyy-mm-dd hh:mm:ss[.fff]

-

126(***)

ISO8601

yyyy-mm-dd Thh:mm:ss:mmm(不含空格)

-

130*

科威特

dd mon yyyy hh:mi:ss:mmmAM

-

131*

科威特

dd/mm/yy hh:mi:ss:mmmAM

*    預設值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始終返回世紀數位 (yyyy)。
** 當轉換為 datetime 時輸入;當轉換為字元資料時輸出。
*** 專門用於 XML。對於從 datetimesmalldatetimecharacter 資料的轉換,輸出格式如表中所示。對於從 floatmoneysmallmoneycharacter 資料的轉換,輸出等同於 style 2。對於從 realcharacter 資料的轉換,輸出等同於 style 1。

clip_image001

重要 預設情況下,SQL Server 根據截止年份 2049 解釋兩位元數字的年份。即,兩位元數字的年份 49 被解釋為 2049,而兩位元數字的年份 50 被解釋為 1950。許多用戶端應用程式(例如那些基於 OLE 自動化物件的用戶端應用程式)都使用 2030 作為截止年份。SQL Server 提供一個配置選項("兩位元數位的截止年份"),藉以更改 SQL Server 所使用的截止年份並對日期進行一致性處理。然而最安全的辦法是指定四位元數字年份。

當從 smalldatetime 轉換為字元資料時,包含秒或毫秒的樣式將在這些位置上顯示零。當從 datetimesmalldatetime 值進行轉換時,可以通過使用適當的 charvarchar 資料類型長度來截斷不需要的日期部分。

下表顯示了從 floatreal 轉換為字元資料時的 style 值。

輸出

0(預設值)

最大為 6 位數。根據需要使用科學記數法。

1

始終為 8 位值。始終使用科學記數法。

2

始終為 16 位值。始終使用科學記數法。

在下表中,左列表示從 money smallmoney 轉換為字元資料時的 style 值。

輸出

0(預設值)

小數點左側每三位元數字之間不以逗號分隔,小數點右側取兩位數,例如 4235.98。

1

小數點左側每三位元數字之間以逗號分隔,小數點右側取兩位數,例如 3,510.92。

2

小數點左側每三位元數字之間不以逗號分隔,小數點右側取四位數,例如 4235.9819。

使用 CONVERT:

(Visited 41 times, 1 visits today)