SQL伺服器 CONVERT與CAST區別何在

2021-05-22 08:32:39 字數 789 閱讀 2518

如果sql 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作為時間戳;current_timestamp的時間資訊將被丟棄。)

SQL伺服器 CONVERT與CAST區別何在

由於sql server提供兩種功能,因此應該選擇哪種功能或應該在哪種情況下使用該功能就很容易讓人困惑了。convert是專對sql server使用的,使日期與時間值,小數之間轉換具有更寬的靈活性。cast是兩種功能中更具ansi標準的功能,即雖然更具便攜性 比如,使用cast的函式能更容易的被其...

C 獲取sql伺服器列表

由於用 sqldmo在有些機器上報錯,這樣只能找c 中的類實現,在sql命名空間下有個 sqldatasourceenumerator類,它的instance屬性返回乙個表。這個表中有一列是sql伺服器的名。以下方法返回乙個陣列把它們放到toolstriptextbox1就可以了。using sys...

SQL伺服器模式

伺服器可以以不同的模式來操作,並且可以為不同客戶端應用不同模式。這樣每個應用程式可以根據自己的需求來定製的操作模式。模式定義mysql應支援哪些sql語法,以及應執行哪種資料驗證檢查。這樣可以更容易地在不同的環境中使用mysql,並結合其它伺服器使用mysql。1 可以用 sql mode mode...