MySQL - TRUNCATE() 函式



MySQL 提供了一組函式來執行各種數值函式。MySQL 的TRUNCATE() 函式用於將給定數字限制到所需的十進位制位數。

此函式保留小數點後指定的位數,並刪除其餘位數。

語法

以下是此函式的語法:

TRUNCATE(x, D);

引數

此函式接受兩個引數,即:

  • X - 您需要從中限制小數位數的(十進位制)數字。

  • D - 小數點後應保留的位數。

返回值

此函式將截斷值作為數值或十進位制值返回。

示例

以下是TRUNCATE() 函式的一個示例。在這裡,我們將小數點後數字的位數限制為 3。

SELECT TRUNCATE(225.33654, 3) As Result;

輸出

上面查詢的輸出如下所示:

結果
225.336

示例

我們可以將引數作為字串值傳遞給此函式:

SELECT TRUNCATE('5587.2645165421', '5') As Result;

輸出

這將產生以下結果:

結果
5587.26451

示例

如果我們選擇的數字是 0,則結果始終為 0:

SELECT TRUNCATE(0, 1) As Result;

輸出

這將產生以下結果:

結果
0

示例

如果引數D(為數字位數選擇的數字)的值為 0,則將刪除小數點後的所有數字:

SELECT TRUNCATE(6546841.489484, 0) As Result;

輸出

執行給定查詢後,輸出將顯示如下:

結果
6546841

示例

如果我們為第二個引數(D)傳遞負值,則將從給定數字中刪除所有小數位,此外,給定數字中指定的位數(小數點左側)將被修改為零。

SELECT TRUNCATE(2545455.33546, -3) As Result;

輸出

執行給定查詢後,輸出將顯示如下:

結果
2545000

示例

在以下示例中,讓我們使用 CREATE 語句建立一個名為CUSTOMERS的表,如下所示:

CREATE TABLE CUSTOMERS (
   ID INT AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

下面的查詢將 7 條記錄新增到上面建立的表中:

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES 
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

要驗證記錄是否已插入,請執行以下查詢:

Select * From CUSTOMERS;

以下是 CUSTOMERS 表:

ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

現在,我們使用 MySQL TRUNCATE() 函式將SALARY列舍入到小數點後零位:

SELECT *, TRUNCATE(SALARY, 0) As Result FROM CUSTOMERS;

執行給定查詢後,輸出將顯示如下:

ID NAME AGE ADDRESS SALARY 結果
1 Ramesh 32 Ahmedabad 2000.00 2000
2 Khilan 25 Delhi 1500.00 1500
3 Kaushik 23 Kota 2000.00 2000
4 Chaitali 25 Mumbai 6500.00 6500
5 Hardik 27 Bhopal 8500.00 8500
6 Komal 22 Hyderabad 4500.00 4500
7 Muffy 24 Indore 10000.00 10000
廣告