⑴ sql語句中如何將字元類型轉換成數字類型
先檢查金額列的數據是否都符合小數規范,轉為數字格式只有是數字的字元串才能轉,如000012轉為12,.55轉為0.55,若是個英文符號等字元轉了就報無效數字類型的錯。
⑵ SQL語句類型轉換問題
你的b列裡面是不是類似'123' 之類的數據,也就是說全部以數字形式出現的字元類型,才可以轉化int。有可能是這個原因。
⑶ SQL如何用語句更改欄位的數據類型
SQL如何用語句更改欄位可以用以下語句可以實現:
altertable表名altercolumn欄位名變更後的欄位類型。
注意:
但若是關鍵欄位,帶有主鍵,並且欄位類型為用戶自定義類型,具有默認值的情況下,用上述語句會出現錯誤。
例如:
現假設表為TABLE1,關鍵欄位為FIELD1,主鍵為PK_FIELD1,關鍵欄位的數據類型為用戶自定義數據類型cha_field1,實際為CHAR(10),默認值為dbo.D_field1現要求將欄位類型改為varchar(20),默認值去除錯誤提示如下:
伺服器:消息5074,級別16,狀態1,行1
對象'D_field1'依賴於列'field1'。
伺服器:消息5074,級別16,狀態1,行1
對象'PK_field1'依賴於列'field1'。
伺服器:消息4922,級別16,狀態1,行1
ALTERTABLEALTERCOLUMNfield1失敗,因為有一個或多個對象訪問此列。
⑷ 在SQL語句里怎麼轉換數據類型
ALTER TABLE 表名 ALTER COLUMN 列名 新的數據類型[(長度)] NULL或NOT NULL
例:ALTER TABLE 教師 ALTER COLUMN 辦公室 CHAR(20) NOT NULL default "辦公室"
把寫好的句子放到執行其他sql語句的地方比如EXEcute(sql)這樣的地方,執行一次就行,然後改回來。
⑸ 怎樣在資料庫中使用sql語句進行類型的轉換
字元串和整數日期都可以轉換的。
1.當欄位類型為:INT;
2.傳入的值為:字元串類型;
3.WHERE條件中的整型欄位的傳入值用單引號或雙引號;
上述描述的前提條件下,會對把傳入的 值類型 轉換為 欄位定義的數據類型,故WHERE 條件是可以使用到索引的,但從資料庫表讀出到內存塊後的值會被 轉換為 傳入值的數據類型,從而導致ORDER BY無法使用到索引
解釋為何ORDER BY ID沒有外部排序 或extra的內容為空,那是因為WHERE ID='2' 按主鍵查詢只能查到唯一的一條記錄,故不需要排序;
ORDER BY tid 時,WHERE tid='2' 按普通索引去查找的話,能查找到的數據條數會大於1條,加上數據類型隱形轉換了,為此需要再額外進行排序和extra部分有內容顯示;
⑹ sql語句中 數據類型轉換 string to int
oracle: to_number(str)
sqlserver: convert(int,欄位名)
⑺ SQL語句類型轉換問題
你只在where條件中使用了類型轉換,應該是
select
a,cast(b
as
int)
into
#M
from
S
就可以了
⑻ sql轉換類型問題
要分兩步走:
首先,把datetime型轉換成varchar型;
然後,把字元串中的"-"號,":"號,以及空格去掉.
參考如下示例:
declare @date datetime
set @date='2007-02-25 01:02:00'
select replace(replace(replace(convert(varchar(30),@date,120),'-',''),':',''),' ','')
補充,數據類型轉換函數可以將datetime型的一步轉換為字元串型,但得不到你要的那種格式,頂多也就只能一步轉換成'2007-02-25 01:02:00'的字元串樣式,當然也可以轉換成其他的排列樣式,但只有這個樣式離你的要求最相近,所以,要最終得到你那種樣式,就必須還要經過一次字元串的替換操作.
replace(replace(replace(convert(varchar(30),@date,120),'-',''),':',''),' ','')
這個函數組合已經很精煉了,你完全可以把它當作一個獨立的函數使用