MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

MariaDB FLOOR () so với TRUNCATE ()

MariaDB có FLOOR() và một TRUNCATE() hàm có thể trả về các kết quả giống nhau hoặc các kết quả khác nhau, tùy thuộc vào giá trị chính xác của các đối số của chúng.

Dưới đây là tóm tắt nhanh về sự khác biệt giữa FLOOR()TRUNCATE() trong MariaDB.

Sự khác biệt

Tóm lại, đây là sự khác biệt giữa từng chức năng:

  • FLOOR() trả về giá trị số nguyên lớn nhất không lớn hơn đối số của nó.
  • TRUNCATE() cắt ngắn đối số của nó thành một số vị trí thập phân được chỉ định.

Cú pháp

Đầu tiên, đây là cú pháp của từng hàm.

FLOOR()

Cú pháp cho FLOOR() như sau:

FLOOR(X)

Nó trả về giá trị số nguyên lớn nhất không lớn hơn X .

TRUNCATE()

Cú pháp cho TRUNCATE() như sau:

TRUNCATE(X,D)

TRUNCATE() trả về số X , được cắt ngắn thành D vị trí thập phân.

Ví dụ

Dưới đây là so sánh để chứng minh sự khác biệt giữa FLOOR()TRUNCATE() :

SELECT 
    FLOOR(-3.6789),
    TRUNCATE(-3.6789, 0);

Kết quả:

+----------------+----------------------+
| FLOOR(-3.6789) | TRUNCATE(-3.6789, 0) |
+----------------+----------------------+
|             -4 |                   -3 |
+----------------+----------------------+

Trong trường hợp này, số là giá trị âm và kết quả từ mỗi hàm là khác nhau.

  • FLOOR() trả về số nguyên lớn nhất (-4 ) giá trị không lớn hơn đối số của nó.
  • TRUNCATE() mặt khác, chỉ cần cắt ngắn số ở vị trí thập phân được chỉ định.

Cùng một kết quả

Cả hai hàm đôi khi có thể trả về cùng một kết quả. Tất cả phụ thuộc vào giá trị của các đối số được truyền.

Nếu chúng ta thay đổi các số thành giá trị dương, cả hai hàm đều trả về cùng một kết quả:

SELECT 
    FLOOR(3.6789),
    TRUNCATE(3.6789, 0);

Kết quả:

+---------------+---------------------+
| FLOOR(3.6789) | TRUNCATE(3.6789, 0) |
+---------------+---------------------+
|             3 |                   3 |
+---------------+---------------------+

Lập luận thứ hai

Một sự khác biệt rõ ràng khác giữa hai hàm là TRUNCATE() chấp nhận / yêu cầu đối số thứ hai. Điều này có thể dẫn đến kết quả chứa một phần phân số.

FLOOR() tuy nhiên, chỉ trả về một số nguyên, vì vậy không có phần phân số nào được trả về.

Ví dụ

SELECT 
    FLOOR(3.6789),
    TRUNCATE(3.6789, 2);

Kết quả:

+---------------+---------------------+
| FLOOR(3.6789) | TRUNCATE(3.6789, 2) |
+---------------+---------------------+
|             3 |                3.67 |
+---------------+---------------------+

ROUND() Chức năng

Cả hai hàm đều khác với ROUND() , làm tròn đối số của nó đến một số vị trí thập phân được chỉ định.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách cài đặt Lighttpd với PHP, MariaDB và PhpMyAdmin trong Ubuntu

  2. MariaDB 10.6 và NextCloud:Hàng COMPRESSED được mặc định chỉ đọc

  3. MariaDB FIELD () so với FIND_IN_SET ():Sự khác biệt là gì?

  4. Mở rộng quy mô cơ sở dữ liệu Moodle

  5. 8 cách để thêm giây vào giá trị ngày giờ trong MariaDB