sql強制轉換
㈠ sql SERVER中強制類型轉換cast和convert的區別
將某種數據類型的表達式顯式轉換為另一種數據類型。CAST 和 CONVERT 提供相似的功能。 語法
使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type[(length)], expression [, style]) 參數
expression 是任何有效的 Microsoft SQL Server" 表達式。有關更多信息,請參見表達式。 data_type 目標系統所提供的數據類型,包括 bigint 和 sql_variant。不能使用用戶定義的數據類型。有關可用的數據類型的更多信息,請參見數據類型。 length nchar、nvarchar、char、varchar、binary 或 varbinary 數據類型的可選參數。 style 日期格式樣式,藉以將 datetime 或 smalldatetime 數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型);或者字元串格式樣式,藉以將 float、real、money 或 smallmoney 數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型)。
將某種數據類型的表達式顯式轉換為另一種數據類型。有關可用的數據類型的更多信息,請參見數據類型。日期格式樣式,藉以將 datetime 或 smalldatetime 數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型);或者字元串格式樣式,藉以將 float、real、money 或 smallmoney 數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型)。當轉換為字元數據時輸出。
隱性轉換對於用戶是不可見的。
SQL Server 自動將數據從一種數據類型轉換成另一種數據類型。例如,如果一個 smallint 變數和一個 int 變數相比較,這個 smallint 變數在比較前即被隱性轉換成 int 變數。 顯式轉換使用 CAST 或 CONVERT 函數。
CAST 和 CONVERT 函數將數值從一個數據類型(局部變數、列或其它表達式)轉換到另一個數據類型。例如,下面的 CAST 函數將數值 $157.27 轉換成字元串 ''$157.27'':CAST ( $157.27 AS VARCHAR(10) )
CAST 函數基於 SQL-92 標准並且優先於 CONVERT。 當從一個 SQL Server 對象的數據類型向另一個轉換時,一些隱性和顯式數據類型轉換是不支持的。例如,nchar 數值根本就不能被轉換成 image 數值。nchar 只能顯式地轉換成 binary,隱性地轉換到 binary 是不支持的。nchar 可以顯式地或者隱性地轉換成 nvarchar。 當處理 sql_variant 數據類型時,SQL Server 支持將具有其它數據類型的對象隱性轉換成 sql_variant 類型。然而,SQL Server 並不支持從 sql_variant 數據隱性地轉換到其它數據類型的對象
㈡ es的sql將double轉成long
第一種強制類型轉換doubled=1.5;inti=(int)d;這種方式的話採取的是截位,意思就是去掉小數點後的數字,比如1.8,結果是1,如果是1.9999999,那結果也是1;
第二種使用Round函數:doubled=1.6;inti=Math.Round(d,0);(保留0維小數就是取整)
第二個參數表示的是保留的小數位數,使用Round函數是四捨五入,而不是截位,比如是1.4,那結果就是1,是1.5,結果就是2(2)sql強制轉換擴展閱讀:double類型轉換成int類型例題:int16=short;int32=int;int64=long;double轉成int時候會涉及都小數,看你像對小數做什麼操作了,以3.8為例子:
intnum=Math.Floor(3.8)
//返回小於或等於指定數字的最大整數,結果為3intnum=Math.Round(3.8)//將值舍入到最接近的整數或指定的小數位數,結果為4
㈢ Sql中有沒有把字元串轉換成int數值類型
直接用 cast('1' as integer)
PostgreSQL中直接使用轉換符號::(連續兩個冒號)就可以實現類型的強制轉換。
可以使用函數:ISNUMERIC;當輸入表達式得數為一個有效的整數、浮點數、money 或 decimal 類型,那麼 ISNUMERIC 返回 1;否則返回 0。返回值為 1 確保可以將 expression 轉換為上述數字類型中的一種。
串接子串
「串接」是 Σ* 上的重要二元運算。對於 Σ* 中的兩個字元串 s 和 t,它們的串接被定義為在 s 中的字元序列之後跟隨著 t 中的字元序列,並被指示為 st。例如,Σ = {a, b, …, z},並且 s = bear 且 t = hug,則 st = bearhug 而 ts = hugbear。
字元串串接是結合性的,但非交換性運算。空串充當單位;對於任何字元串 s,有 εs = sε = s。所以,集合 Σ* 和串接運算形成了幺半群,就是從 Σ 生成的自由幺半群。此外,長度函數定義從 Σ* 到非負整數的幺半群同態。
以上內容參考:網路-字元串
㈣ SQL SERVER中強制類型轉換cast和convert的區別
SQL SERVER中強制類型轉換cast和convert的區別
SQL中cast 和convert都是用來將一種數據類型的表達式轉換為另一種數據類型的表達式。CAST 和 CONVERT 提供相似的功能,只是語法不同。
在時間類型轉化中一般用到convert,因為它比cast多加了一個style,可以轉化成不同時間的格式。
一、使用語法:
1、CAST ( expression AS data_type )
2、CONVERT (data_type[(length)], expression [, style])
參數說明:
expression:是任何有效的表達式。
data_type:目標系統所提供的數據類型,包括 bigint 和 sql_variant。不能使用用戶定義的數據類型。
length:nchar、nvarchar、char、varchar、binary 或 varbinary 數據類型的可選參數。
style:
日期格式樣式,藉以將 datetime 或 smalldatetime
數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar
數據類型);或者字元串格式樣式,藉以將 float、real、money 或 smallmoney
數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型)。
二、腳本示例
select CAST('1234' as int) -- 1234
select CONVERT(int, '1234') -- 1234
select CAST(123.4 as int) -- 123
select CONVERT(int, 123.4) -- 123
select CAST('123.4' as decimal) -- 123
select CONVERT(decimal, '123.4') -- 123
select CAST('123.4' as decimal(9,2)) -- 123.40
select CONVERT(decimal(9,2), '123.4') -- 123.40
declare @Num moneyset @Num = 1234.56
select CONVERT(varchar(20), @Num, 0) -- 1234.56
select CONVERT(varchar(20), @Num, 1) -- 1,234.56
select CONVERT(varchar(20), @Num, 2) -- 1234.5600
CONVERT(VARCHAR(19),GETDATE()) --Dec 29 2016 11:45 PM
CONVERT(VARCHAR(10),GETDATE(),110) --12-29-2016
CONVERT(VARCHAR(11),GETDATE(),106) --29 Dec 16
CONVERT(VARCHAR(24),GETDATE(),113) --29 Dec 2016 16:25:46.635