Server程序員想將表達式從壹種換為另壹種,他可以從SQL
Server
7和2000中自帶的兩種功能中做出選擇。在存儲過程或其他情況下,我們常常需要將數據從datetime型轉化成varchar型;CONVERT和CAST就可以用於這種情況。
由於SQL
Server提供兩種功能,因此應該選擇哪種功能或應該在哪種情況下使用該功能就很容易讓人困惑了。CONVERT是專對SQL
Server使用的,使日期與時間值,小數之間轉換具有更寬的靈活性。
CAST是兩種功能中更具ANSI標準的功能,即雖然更具便攜性(比如,使用CAST的函數能更容易的被其它數據庫軟件使用),但功能相對弱壹些。不過,當小數轉化為數值,並保留原始表達式中的小數數值時,仍然需要使用CAST。因此,我建議首先使用CAST,如果遇到必須使用CONVERT的情況時再使用CONVERT。
CAST和CONVERT還能聯合使用,達到特殊的效果。比如,在current
date下生成char變量壹般使用以下方法:
SELECT
CONVERT(CHAR(10),
CURRENT_TIMESTAMP,
102)
(102表明使用了ANSI日期模式,即yy.mm.dd型)
然而,如果妳希望將這個變量明確生成為datetime或smalldatetime變量,以此在特定的數據庫欄中兼容,那麽妳可以使用以下語句:
SELECT
CAST(CONVERT(CHAR(10),CURRENT_TIMESTAMP,102)
AS
DATETIME
返回值將是
yy.mm.dd
00:00:00(如12:00AM作為時間戳;