常常用,常常忘,摘下來做個筆記。原作者不詳了。
convert
將某種資料型別的表示式顯式轉換為另一種資料型別。由於某些需求經常用到取日期格式的不同.現以下可在
sql server中 將日期格式化.
sql server 支援使用科威特演算法的阿拉伯樣式中的資料格式。
在表中,左側的兩列表示將datetime或smalldatetime轉換為字元資料的 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。對於從datetime或smalldatetime到character資料的轉換,輸出格式如表中所示。對於從float、money或smallmoney到character資料的轉換,輸出等同於 style 2。對於從real到character資料的轉換,輸出等同於 style 1。
重要預設情況下,sql server 根據截止年份 2049 解釋兩位數字的年份。即,兩位數字的年份 49 被解釋為 2049,而兩位數字的年份 50 被解釋為 1950。許多客戶端應用程式(例如那些基於 ole 自動化物件的客戶端應用程式)都使用 2030 作為截止年份。sql server 提供乙個配置選項("兩位數字的截止年份"),藉以更改 sql server 所使用的截止年份並對日期進行一致性處理。然而最安全的辦法是指定四位數字年份。
當從smalldatetime轉換為字元資料時,包含秒或毫秒的樣式將在這些位置上顯示零。當從datetime或smalldatetime值進行轉換時,可以通過使用適當的char或varchar資料型別長度來截斷不需要的日期部分。
下表顯示了從float或real轉換為字元資料時的 style 值。值輸出
0(預設值)
最大為 6 位數。根據需要使用科學記數法。
1始終為 8 位值。始終使用科學記數法。
2始終為 16 位值。始終使用科學記數法。
在下表中,左列表示從money或smallmoney轉換為字元資料時的 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...