SQL 中使用CONVERT轉日期格式

2021-08-29 19:45:37 字數 4016 閱讀 2729

常常用,常常忘,摘下來做個筆記。原作者不詳了。

convert

將某種資料型別的表示式顯式轉換為另一種資料型別。由於某些需求經常用到取日期格式的不同.現以下可在

sql server中 將日期格式化.

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

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

不帶世紀數字 (yy)

帶世紀數字 (yyyy)

標準輸入/輸出**

-0 或 100 (*)

預設值mon dd yyyy hh:miam(或 pm)

1101

美國mm/dd/yyyy

2102

ansi

yy.mm.dd

3103

英國/法國

dd/mm/yy

4104

德國dd.mm.yy

5105

義大利dd-mm-yy

6106

-dd mon yy

7107

-mon dd, yy

8108

-hh:mm:ss

-9 或 109 (*)

預設值 + 毫秒

mon dd yyyy hh:mi:ss:mmmam(或 pm)

10110

美國mm-dd-yy

11111

日本yy/mm/dd

12112

isoyymmdd

-13 或 113 (*)

歐洲預設值 + 毫秒

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

14114

-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。

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

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

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

0(預設值)

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

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

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

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

0(預設值)

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

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

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

使用 convert:

convert (data_type[(length)], expression [, style])

select convert(varchar, getdate(), 120 )

2004-09-12 11:06:08

select replace(replace(replace(convert(varchar, getdate(), 120 ),"-","")," ",""),":","")

20040912110608

select convert(varchar(12) , getdate(), 111 )

2004/09/12

select convert(varchar(12) , getdate(), 112 )

20040912

select convert(varchar(12) , getdate(), 102 )

2004.09.12

select convert(varchar(12) , getdate(), 101 )

09/12/2004

select convert(varchar(12) , getdate(), 103 )

12/09/2004

select convert(varchar(12) , getdate(), 104 )

12.09.2004

select convert(varchar(12) , getdate(), 105 )

12-09-2004

select convert(varchar(12) , getdate(), 106 )

12 09 2004

select convert(varchar(12) , getdate(), 107 )

09 12, 2004

select convert(varchar(12) , getdate(), 108 )

11:06:08

select convert(varchar(12) , getdate(), 109 )

09 12 2004 1

select convert(varchar(12) , getdate(), 110 )

09-12-2004

select convert(varchar(12) , getdate(), 113 )

12 09 2004 1

select convert(varchar(12) , getdate(), 114 )

11:06:08.177

在SQL中使用convert函式進行日期的查詢

現在資料庫users表中有這個joindate欄位,datetime型別 有幾個資料比如2005 07 30 2005 07 20 然後查詢joindate欄位 select from users where joindate like 2005 可以正常顯示 可是當查詢 select from u...

SQL中使用CONVERT轉換時間輸出格式

select convert varchar 100 getdate 0 05 16 2006 10 57am select convert varchar 100 getdate 1 05 16 06 select convert varchar 100 getdate 2 06.05.16 se...

在SQL中使用convert函式進行日期的查詢

曾經遇到這樣的情況,在的meeting表中有publishtime datetime,8 字段,用來儲存乙個開會時間,在存入時由於要指明開會具體時間,故格式為yyyy mm ddhh mm ss,而我們 查詢時是通過yyyy mm dd來進行的,即 查詢某一天的所有會議資訊,這樣如果通過select...