【秋天的思念】SQL中CONVERT轉化函式的用法

iDotNetSpace發表於2008-07-24

CONVERT的使用方法:

////////////////////////////////////////////////////////////////////////////////////////

格式:
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 or 100 | mon dd yyyy hh:miAM(或PM)
-------------------------------------------------------------------------------------------------
1 | 101 | mm/dd/yy
-------------------------------------------------------------------------------------------------
2 | 102 | 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 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)
-------------------------------------------------------------------------------------------------
10 | 110 | mm-dd-yy
-------------------------------------------------------------------------------------------------
11 | 111 | yy/mm/dd
-------------------------------------------------------------------------------------------------
12 | 112 | yymmdd
-------------------------------------------------------------------------------------------------
- | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小時制)
-------------------------------------------------------------------------------------------------
14 | 114 | hh:mi:ss:mmm(24小時制)
-------------------------------------------------------------------------------------------------
- | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小時制)
-------------------------------------------------------------------------------------------------
- | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小時制)
-------------------------------------------------------------------------------------------------

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

曾經遇到這樣的情況,在資料庫的Meeting表中有PublishTime (DateTime,8)欄位,用來儲存一個開會時間,在存入時由於要指明開會具體時間,故格式為yyyy-mm-dd hh:mm:ss,而我們查詢時是通過yyyy-mm-dd來進行的,即查詢某一天的所有會議資訊,這樣如果通過select * from Meeting where PublishTime=@PublishTime (引數@PublishTimeyyyy-mm-dd格式)語句進行查詢將無法得到正確結果,比如我們要查詢2004121日的會議資訊,在輸入2004-12-01時就不能得到查詢結果,而這種查詢又不能要求輸入具體的hh:mm:ss.

    此時我們需要使用convert函式,它可以將一種資料型別的表示式轉換為另一種資料型別的表示式.此處我們先將資料庫內的datetime型別轉換為char型別,由於輸入的引數是10位的,所以寫成

 select * from Meeting where convert(varchar(10),PublishTime,121))=@PublishTime,這樣在查詢時資料庫得到引數後先自動將資料庫內的資訊轉換為yyyy-mm-dd格式的10位字元,只要與引數相同即可返回查詢結果.convert中的121是指將datetime型別轉換為char型別時獲得包括世紀位數的4位年份。

或者用CONVERT(DATETIME, PublishTime, 112)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-409917/,如需轉載,請註明出處,否則將追究法律責任。

相關文章