SQL 中的資料型別轉換

2021-05-02 03:16:16 字數 1648 閱讀 6775

今天碰到乙個問題,為什麼對int型別的字段,插入varchar也行,突然想到sql中也有資料型別轉換一說..............

資料型別轉換

在 transact-sql 中,可能有兩個級別的資料型別轉換:

資料型別轉換有兩種:

cast 和 convert 函式將數值從乙個資料型別(區域性變數、列或其它表示式)轉換到另乙個資料型別。例如,下面的 cast 函式將數值 $157.27 轉換成字串 '$157.27':

cast ( $157.27 as varchar(10) )
cast 函式基於 sql-92 標準並且優先於 convert。

轉換小數字數不同的資料型別時,結果值有時被截斷,有時被捨入。

被轉換的資料型別

轉換為的資料型別

行為 numeric

numeric

round

numeric

int

截斷numeric

money

round

money

int

round

money

numeric

round

float

int截斷

float

numeric

round

float

datetime

round

datetime

int捨入

例如,以下轉換的結果為10

select cast(10.6496 as int)

在進行資料型別轉換時,若目標資料型別的小數字數小於源資料型別的小數字數,則該值將被截斷。例如,以下轉換的結果為$10.3497

select cast(10.3496847 as money)

當非數字型 char、nchar、varchar 或 nvarchar 資料轉換為 int、float、numeric 或 decimal 時,sql server 將返回錯誤訊息。當空字串 (" ") 轉換為 numeric 或 decimal 時,sql server 也返回錯誤。

當從乙個 sql server 物件的資料型別向另乙個轉換時,一些隱性和顯式資料型別轉換是不支援的。例如,nchar數值根本就不能被轉換成image數值。nchar只能顯式地轉換成binary,隱性地轉換到binary是不支援的。nchar可以顯式地或者隱性地轉換成nvarchar

當處理sql_variant資料型別時,sql server 支援將具有其它資料型別的物件隱性轉換成sql_variant型別。然而,sql server 並不支援從sql_variant資料隱性地轉換到其它資料型別的物件。

在應用程式變數和 sql server 結果集列、返回**、引數或引數標記之間轉換時,所支援的資料型別轉換是由資料庫應用程式介面定義。

Access中SQL查詢的資料型別轉換

每個函式都可以強制將乙個表示式轉換成某種特定資料型別。語法 cbool expression cbyte expression ccur expression cdate expression cdbl expression cdec expression cint expression clng ...

js中的資料型別和資料型別轉換

原始型別 string number boolean null undefined symbol 物件 object 顯示型別轉換是通過呼叫下面這三個函式來進行的。1.number 數值 轉換之後還是數值 字串 如果可以被解析為數值,則轉為數值,否則轉為nan,空字串轉為0 布林值 true轉成1,...

VC 中資料型別的轉換

引用自施昌權 部落格 1 char 轉換成cstring 若將char 轉換成cstring,除了直接賦值外,還可使用cstring format進行。例如 char charray this is a test char p this is a test 或lpstr p this is a te...