『壹』 sql語句中怎樣將字元類型轉換成數字類型
先檢查金額列的數據是否都符合小數規范,轉為數字格式只有是數字的字元串才能轉,如000012轉為12,.55轉為0.55,若是個英文符號等字元轉了就報無效數字類型的錯。
『貳』 sql server中的怎麼把數值型轉換為字元串
有兩種。
1.轉換(int,欄位名)
例如:選擇convert(int,'3')
選擇cast('3'作為int)
一般來說,沒有必要將字元串轉換為數字類型,如果你需要比較兩個欄位是相等的,但為字元串類型欄位,類型,用「=」來比較這兩個值是相等的,SQLSERVER將自動將字元串轉換為一個數字,然後比較。
(2)sql數字轉換擴展閱讀:
注意事項:
這兩個函數都執行強制轉換,但是語法不同。據說有一些不同的轉換,但我更習慣於使用轉換函數,它更像一個函數的語法一方面,可以指定的格式轉換,將時間和價值轉換為一個字元串。
對於數據類型的確切值,轉換後的字元串是我們存儲的值。如:
聲明@iintset@i=123456789print'test:'+轉換(varchar(20),@i)
輸出是:test:123456789
對於具有近似值的數據類型,情況就不那麼簡單了。
聲明@ifloatset@i=123456789print'test:'+轉換(varchar(20),@i):test:1.23457e+008
『叄』 SQL 中怎麼把字元串轉換為數字
可以使用函數:ISNUMERIC
當輸入表達式得數為一個有效的整數、浮點數、money 或 decimal 類型,那麼 ISNUMERIC 返回 1;否則返回 0。返回值為 1 確保可以將 expression 轉換為上述數字類型中的一種。
將字元的數字轉成數字,比如'0'轉成0可以直接用加法來實現;
若絕對比較可以這樣:
select binary 11 =binary "11ddddd";
字元集轉換:CONVERT(xxx USING gb2312);
類型轉換和SQL Server一樣,就是類型參數有點點不同 : CAST(xxx AS 類型),CONVERT(xxx,類型);
類型必須用下列的類型:BINARY、CHAR()、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED。
數據類型:
字元串數據類型是建模在形式字元串的想法上的數據類型。字元串是幾乎在所有編程語言中可以實現的非常重要和有用的數據類型。在某些語言中它們可作為基本類型獲得,在另一些語言中做為復合類型獲得。多數高級語言的語法允許通常用某種方式引用起來的字元串來表示字元串數據類型的實例;這種元字元串叫做「文本」或「字元串文本」。
以上內容參考:網路-字元串
『肆』 SQL中如何將數字型轉換為日期型
用cast函數來進行轉換。
先利用cast函數將數字型轉為字元型,再用一次cast函數將字元型轉為日期型。
語句如下:
selectcast(cast(20050927asvarchar)asdatetime)
結果如圖:
cast函數說明:
語法:
CAST
(expression
AS
data_type)
參數說明:
expression:任何有效的SQServer表達式。
AS:用於分隔兩個參數,在AS之前的是要處理的數據,在AS之後是要轉換的數據類型。
data_type:目標系統所提供的數據類型,包括bigint和sql_variant,不能使用用戶定義的數據類型。
『伍』 如何將sql查詢得到數字按大小轉換成字母輸出
轉換的方式有很多種,但是最主要的是你需要制定轉換的規則。
比如什麼值轉換成A,什麼值轉換成B。這個需要一定的規則,要不然程序是無法知道一個數值要轉換成什麼字母的。
你可以在sql文里做轉換,比如oracle的
decode函數
,以及
sqlserver
的iif函數,只不過這個比較適用於較少
數據項
的轉換,你這種情況不太適合用這兩個函數進行轉換。
你也可以在資料庫里做一張配置表,把數值跟字母對應起來,這樣查詢的時候,根據no值和配置表做一個對應,這樣查詢出來的結果就是轉換後的字母了。
你也可以用xml或者其他文件做一個
配置文件
,把no值作為key,把字母當成value。程序載入時,把它讀到
hashtable
里邊去,hashtable是k-v方式存儲數據的,因此轉換的時候,你只要把no值當成key傳到hashtable里邊去就能獲取到響應的字母了。
Private
Sub
Button1_Click(ByVal
sender
As
System.Object,
ByVal
e
As
System.
EventArgs
)
Handles
Button1.Click
hashtable.Add(1001,
"A")
hashtable.Add(1002,
"B")
hashtable.Add(1003,
"C")
hashtable.Add(1004,
"D")
MessageBox
.Show(Exchange(1001))
End
Sub
Public
Function
Exchange(ByVal
source
As
Integer)
As
String
Return
hashtable.Item(source).ToString
End
Function
總之,最主要的是制定一個轉換規則。
『陸』 在sql中如何實現電話號碼中間的4位數字轉換成特殊字元
不同的資料庫做法不同
replace就是替換,雖然是字元的替換,不過你的特殊字元應該不是數字吧,所以你的號碼應該存成字元型,不然假設你的替換字元是xxxx,可是這個可是沒辦法插入數字格式的。
你說的中間四位怎麼定義,是類似xxx xxxx xxxx種種,還是XX YYYY xx這種,如果是前面那種那就用定位比如substr,不知道你是什麼資料庫,只能用oracle的方式寫,可以根據自己資料庫自行查找相應函數
比如,replace(字元串,substr(字元串,4,4),'XXXX')
這樣的話,假設源字元串為001 1101 1100,那麼就會變為001 xxxx 1100
當然,這個語句本身是有問題的,如果剛巧你的號碼比較特殊,比如001 0101 0101,那麼可能就變成了0XXXX XXXX 01,或者001 1001 1001 那麼就是001 XXXX XXXX
那麼怎麼只更換中間四位,其他位置有特殊的也不動呢?
有兩個辦法
(1)分開顯示人然後合並,比如 selelct substr(字元串,1,3)||『XXXX』|| substr(字元串,-1,4) (本寫法是oracle的,其他資料庫的連接符號各有不同,情自行查找)
(2)replace全部替換,其實合作前面的差不多,比如replace(字元串,substr(字元串,1), substr(字元串,1,3)||『XXXX』|| substr(字元串,-1,4))
『柒』 SQL中如何將數字型轉換為日期型
平時為了方便存儲和查詢,通常會選擇將時間存儲為毫秒或者秒的形式。但是頁面顯示的時候很不直觀,需要將整型數字轉化成日期格式,轉化方式包括下面幾種:
1、秒數與Date之間的轉換:select from_unixtime(1388776825);
如果想逆向轉換,可以通過unix_timestamp()函數反向轉換。用法如下:
SELECT UNIX_TIMESTAMP() ;//獲取當前時間的秒數
SELECT UNIX_TIMESTAMP('2014-03-23 10:10:40') ; //獲取指定日期格式的秒數
SELECT UNIX_TIMESTAMP('2014-03-23') ; //獲取指定日期格式的秒數
(7)sql數字轉換擴展閱讀:
一、date型換int型
SELECT UNIX_TIMESTAMP(『2017-9-22 13:54:45』)
二、int型轉date型
SELECT FROM_UNIXTIME(1506059685)
需要注意的是,一個int值轉換為DateTime 需要從1970年1月1日0點0分0秒開始,但是必須明確,這個時間是標准時間,而不是北京時間。
資料庫中數據的時間都是以標准時間為准繩的。所以必須轉換到當前時間, 中國是+8 ,可以簡單的調用ToLocalTime達到效果。
『捌』 sql語句怎樣把查詢出來的數字轉換陳字元
很簡單啊。
string Sqlstr = "0120";//假設這個是從資料庫取出的值
string[] arrs = new string[] { "零", "壹", "貳" ,"叄",'肆"};//這里是從1到9的大寫。。。你可以一直寫下去
char[] chars = Sqlstr.ToCharArray();//把從資料庫獲取的數字轉換成char類型
StringBuilder sb = new StringBuilder();
for (int index = 0; index < chars.Length; index++)
{
string newValue = arrs[int.Parse(chars[index].ToString())];//這一句是核心,我們每獲取一個數字,因為我們0是對應零的,1是對應壹的,2是對應貳的。。。所以,我就可以在arrs這個數據獲取到相應的值。就OK了
sb.Append(newValue);//沒獲取一個就放進sb裡面,最後輸出來了。
}