TopDev

So sánh ROUND và CAST trong oracle

minhu 📖 3 phút đọc

ROUND và CAST trong Oracle#

Cả ROUNDCAST đều được sử dụng để xử lý số liệu trong Oracle, nhưng chúng phục vụ các mục đích khác nhau và có cách hoạt động khác nhau.

1. ROUND

  • Chức năng: ROUND được sử dụng để làm tròn một số đến một vị trí thập phân cụ thể hoặc làm tròn đến số nguyên gần nhất.

  • Cú pháp: ROUND(number): Làm tròn number đến số nguyên gần nhất.

    • ROUND(number, decimal_places): Làm tròn number đến decimal_places chữ số sau dấu thập phân.
  • Ví dụ: SELECT ROUND(123.456) FROM dual; -- Kết quả: 123 SELECT ROUND(123.456, 1) FROM dual; -- Kết quả: 123.5 SELECT ROUND(123.456, 2) FROM dual; -- Kết quả: 123.46 SELECT ROUND(123.456, 0) FROM dual; -- Kết quả: 123 SELECT ROUND(123.456, -1) FROM dual; -- Kết quả: 120

2. CAST

  • Chức năng: CAST được sử dụng để chuyển đổi kiểu dữ liệu của một giá trị thành kiểu dữ liệu khác.

  • Cú pháp: CAST(value AS data_type): Chuyển đổi value sang kiểu dữ liệu data_type.

  • Ví dụ: SELECT CAST(123.456 AS INT) FROM dual; -- Kết quả: 123 SELECT CAST('123' AS NUMBER) FROM dual; -- Kết quả: 123 SELECT CAST(sysdate AS TIMESTAMP) FROM dual; -- Chuyển đổi DATE thành TIMESTAMP

So sánh chi tiết#

Tiêu chí ROUND CAST
Chức năng chính Làm tròn số Chuyển đổi kiểu dữ liệu
Cú pháp ROUND(number, decimal_places) CAST(value AS data_type)
Đầu vào Một số hoặc biểu thức số học Bất kỳ giá trị nào và kiểu dữ liệu tương ứng
Đầu ra Một số đã làm tròn Giá trị với kiểu dữ liệu mới
Ứng dụng Thường được sử dụng để làm tròn các giá trị số trong các tính toán tài chính, thống kê, v.v. Thường được sử dụng để đảm bảo kiểu dữ liệu nhất quán trong các phép toán và xử lý dữ liệu

Ví dụ so sánh#

Giả sử bạn có một phép toán để tính số giây giữa hai ngày và bạn muốn chuyển đổi kết quả thành số nguyên:

Sử dụng ROUND:

SELECT ROUND((sysdate - create_date) * 24 * 60 * 60) AS seconds_diff FROM tbl_content_view WHERE CONTENT_ID = '123';

Sử dụng CAST:

SELECT CAST((sysdate - create_date) * 24 * 60 * 60 AS INT) AS seconds_diff FROM tbl_content_view WHERE CONTENT_ID = '123';

Cả hai phương pháp sẽ cho kết quả gần giống nhau, nhưng ROUND sẽ làm tròn giá trị đến số nguyên gần nhất, trong khi CAST sẽ cắt bỏ phần thập phân.

Khi nào sử dụng ROUNDCAST#

  • Sử dụng ROUND: Khi bạn cần làm tròn số liệu đến số nguyên hoặc một vị trí thập phân cụ thể.

    • Khi bạn cần đảm bảo rằng số liệu được làm tròn theo một quy tắc cụ thể (ví dụ: làm tròn đến số nguyên gần nhất hoặc làm tròn đến một vị trí thập phân cụ thể).
  • Sử dụng CAST: Khi bạn cần chuyển đổi kiểu dữ liệu của một giá trị (ví dụ: từ số thực thành số nguyên, từ chuỗi thành số, từ DATE thành TIMESTAMP, v.v.).

    • Khi bạn cần đảm bảo rằng kết quả của một phép toán có kiểu dữ liệu cụ thể để tương thích với các phép toán hoặc xử lý dữ liệu khác.

Tóm lại, ROUNDCAST phục vụ các mục đích khác nhau trong SQL và có thể được sử dụng cùng nhau hoặc riêng biệt tùy theo yêu cầu của bạn.

Bài liên quan trong #Database

✓ Đã sao chép link