Sql server中CONVERT函式用法

時間 2021-06-07 01:21:43

1樓:

格式:convert(data_type,expression[,style])

說明:此樣式一般在時間型別(datetime,smalldatetime)與字串型別(nchar,nvarchar,char,varchar)

相互轉換的時候才用到.

例子:select convert(varchar(30),getdate(),101) now

結果為:

now---------------------------------------

|09/15/2001

style數字在轉換時間時的含義如下:

style(2位表示年份) | style(4位表示年份) | 輸入輸出格式

0 | 100 | mon dd yyyy hh:miam(或pm)

1 | 101 美國 | mm/dd/yy

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:

mmmmam(或pm)

10 | 110 美國 | mm-dd-yy

11 | 111 日本 | yy/mm/dd

12 | 112 iso | yymmdd

13 | 113 歐洲預設值 | dd mon yyyy hh:mi:ss:mmm(24小時制)

14 | 114 | hh:mi:ss:mmm(24小時制)

20 | 120 odbc 規範 | yyyy-mm-dd hh:mi:ss(24小時制)

21 | 121 | yyyy-mm-dd hh:mi:ss:

mmm(24小時制)

語句及查詢結果:

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

select convert(varchar(100), getdate(), 3): 16/05/06

select convert(varchar(100), getdate(), 4): 16.05.06

select convert(varchar(100), getdate(), 5): 16-05-06

select convert(varchar(100), getdate(), 6): 16 05 06

select convert(varchar(100), getdate(), 7): 05 16, 06

select convert(varchar(100), getdate(), 8): 10:57:46

select convert(varchar(100), getdate(), 9): 05 16 2006 10:57:46:827am

select convert(varchar(100), getdate(), 10): 05-16-06

select convert(varchar(100), getdate(), 11): 06/05/16

select convert(varchar(100), getdate(), 12): 060516

select convert(varchar(100), getdate(), 13): 16 05 2006 10:57:46:937

select convert(varchar(100), getdate(), 14): 10:57:46:967

select convert(varchar(100), getdate(), 20): 2006-05-16 10:57:47

select convert(varchar(100), getdate(), 21): 2006-05-16 10:57:47.157

select convert(varchar(100), getdate(), 22): 05/16/06 10:57:47 am

select convert(varchar(100), getdate(), 23): 2006-05-16

select convert(varchar(100), getdate(), 24): 10:57:47

select convert(varchar(100), getdate(), 25): 2006-05-16 10:57:47.250

select convert(varchar(100), getdate(), 100): 05 16 2006 10:57am

select convert(varchar(100), getdate(), 101): 05/16/2006

select convert(varchar(100), getdate(), 102): 2006.05.16

select convert(varchar(100), getdate(), 103): 16/05/2006

select convert(varchar(100), getdate(), 104): 16.05.2006

select convert(varchar(100), getdate(), 105): 16-05-2006

select convert(varchar(100), getdate(), 106): 16 05 2006

select convert(varchar(100), getdate(), 107): 05 16, 2006

select convert(varchar(100), getdate(), 108): 10:57:49

select convert(varchar(100), getdate(), 109): 05 16 2006 10:57:49:437am

select convert(varchar(100), getdate(), 110): 05-16-2006

select convert(varchar(100), getdate(), 111): 2006/05/16

select convert(varchar(100), getdate(), 112): 20060516

select convert(varchar(100), getdate(), 113): 16 05 2006 10:57:49:513

select convert(varchar(100), getdate(), 114): 10:57:49:547

select convert(varchar(100), getdate(), 120): 2006-05-16 10:57:49

select convert(varchar(100), getdate(), 121): 2006-05-16 10:57:49.700

select convert(varchar(100), getdate(), 126): 2006-05-16t10:57:49.827

select convert(varchar(100), getdate(), 130): 18 ???? ?????? 1427 10:57:49:907am

select convert(varchar(100), getdate(), 131): 18/04/1427 10:57:49:920am

說明:使用 convert:

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

引數expression

是任何有效的 microsoft® sql server™ 表示式。。

data_type

目標系統所提供的資料型別,包括 bigint 和 sql_variant。不能使用使用者定義的資料型別。

length

nchar、nvarchar、char、varchar、binary 或 varbinary 資料型別的可選引數。

style

日期格式樣式,藉以將 datetime 或 smalldatetime 資料轉換為字元資料(nchar、nvarchar、char、varchar、nchar 或 nvarchar 資料型別);或者字串格式樣式,藉以將 float、real、money 或 smallmoney 資料轉換為字元資料(nchar、nvarchar、char、varchar、nchar 或 nvarchar 資料型別)。

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

在表中,左側的兩列表示將 datetime 或 smalldatetime 轉換為字元資料的 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* hijri**** dd mon yyyy hh:mi:ss:mmmam

- 131* hijri**** dd/mm/yy hh:mi:ss:mmmam

* 預設值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始終返回世紀數位 (yyyy)。

** 當轉換為 datetime時輸入;當轉換為字元資料時輸出。

*** 專門用於 xml。對於從 datetime或 smalldatetime 到 character 資料的轉換,輸出格式如表中所示。對於從 float、money 或 smallmoney 到 character 資料的轉換,輸出等同於 style 2。

對於從 real 到 character 資料的轉換,輸出等同於 style 1。

****hijri 是具有幾種變化形式的日曆系統,microsoft® sql server™ 2000 使用其中的科威特演算法。

重要 預設情況下,sql server 根據截止年份 2049 解釋兩位數字的年份。即,兩位數字的年份 49 被解釋為 2049,而兩位數字的年份 50 被解釋為 1950。許多客戶端應用程式(例如那些基於 ole 自動化物件的客戶端應用程式)都使用 2030 作為截止年份。

sql server 提供一個配置選項("兩位數字的截止年份"),藉以更改 sql server 所使用的截止年份並對日期進行一致性處理。然而最安全的辦法是指定四位數字年份。

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

sql server 中 關於和declare的解釋,請看

表示區域性變數,表示全域性變數 declare 定義變數,變數第一個字母是 宣告時需要指定變數的型別。declare n int 其中int是使用整數資料的精確數字資料型別,從 2 31 2,147,483,648 到 2 31 1 2,147,483,647 的整型資料。 1.sql server...

SQL Server中,null與not null在什麼

1.在定義表時 create table t1 id int not null 預設為可以為空.2.在篩選欄位時,比如你定義郵箱驗證表時把沒有驗證郵箱的使用者email in的值為空,你要查詢沒有驗證郵箱的使用者。要用到的 is null select from table where email ...

mysql和sqlserver中sql語法區別

select from std where userid not in select serid from std limit 3 limit 3 select count lc 這樣修改 select from std where userid not in select top 3 userid...