sql中的round函式和cast函式詳解

2021-05-10 03:30:30 字數 1696 閱讀 1861

《一》:round函式主要返回數字表示式並四捨五入為指定的長度或精度。

語法格式如下:

round(numeric_expression,length[,function])

引數說明:

1.numeric_expression:精確數字或近擬數字資料型別類別的表示式。

注意:bit資料型別除外。

2.length:是numeric_wxpression 將要四捨五入的精度。length必須是tinyint,smallint,或int.當length為正數時,numeric_expression四捨五入為lengthrn所指定的小數字數。當length為負數時,numeric_expression則按length所指定的在小數點的左邊四捨五入。

3.function: 是要執行的打操作型別。

(1).round(四捨五入)函式始終返回乙個值。如果length是負數且大於小數點前的數字個數,round將返回0.如下面的例子的返回值就為0:     round(748.55,-4)

(2).當length是負數時,且不大於小數點前的數字個數,無論什麼資料型別,round函式都將返回乙個四會五入的numeric_expression,如下例子所示:

round(748.58,-1)=750.00          round(748.58,-2)=700.00      round(748.58,-3)=1000.00

(3)當length為正數時,round函式的運算結果如下例子所示:

round(123.4545,2)=123.4500    round(123.4545,1)=123.5000      round(123.4545,3)=123.4550

(4)使用round函式截斷。如下例子所示:

round(150.75,0)=151.00       round(1502.75,0,1)=1502.00

《二》:cast函式:它具有和c0nvert函式相似的功能。即將某種資料型別的表示式顯式轉換為另一種資料型別。

語法形式:cast(expression as data_type)

引數說明:

1.expression:該引數是任何有效的sql表示式。

2.as:用於分隔兩個引數,在as之前的是要處理的資料,在as之後的是要轉換的資料型別。

3.data_type:目標系統所提供的資料型別,包括bigint和sql_variant.不能使用使用者自定義的資料型別。

顯式轉換使用 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 資料隱性地轉換到其它資料型別的物件。

SQL學習之round 函式

菜鳥教程 sql 中的len 函式用於把數值四捨五入為指定的小數字數 select round column name decimals from table name 引數 描述column name 必需。要捨入的數值或字段 decimals 可選。設定要返回的小數字數。預設為0 round x...

Oracle中的Round函式

round函式用法 擷取數字 格式如下 round number decimals 其中 number 待做擷取處理的數值 decimals 指明需保留小數點後面的位數。可選項,忽略它則截去所有的小數部分,並四捨五入。如果為負數則表示從小數點開始左邊的位數,相應整數數字用0填充,小數被去掉。需要注意...

mysql中的round函式

在mysql中,round函式用於資料的四捨五入,它有兩種形式 1 round x,d x指要處理的數,d是指保留幾位小數 這裡有個值得注意的地方是,d可以是負數,這時是指定小數點左邊的d位整數字為0,同時小數字均為0 2 round x 其實就是round x,0 也就是預設d為0 下面是幾個例項...