Hàm CAST trong SQL Server

Hàm Cast trong SQL Server là gì? Hàm cast hay còn gọi là ép kiểu trong SQL Server có rất nhiều ứng dụng trong lập trình. Dưới đây là mọi điều bạn cần biết.

SQL Server có rất nhiều hàm với chức năng khác nhau. Chúng có ý nghĩa riêng trong lập trình. Ở bài viết này, chúng ta sẽ cùng nhau tìm hiểu về hàm Cast.

Hàm Cast trong SQL Server chủ yếu được dùng để chuyển đổi biểu thức từ một kiểu dữ liệu này sang kiểu dữ liệu khác. Nếu hàm Cast SQL Server không thể chuyển đổi một khai báo tới kiểu dữ liệu mong muốn, hàm này trả về một lỗi. Hàm Cast hay ép kiểu SQL Server thường được dùng để chuyển đổi dữ liệu số thành ký tự hoặc dữ liệu chuỗi.

Bài viết này sẽ hướng dẫn chi tiết cho bạn cách sử dụng hàm chuyển đổi kiểu dữ liệu CAST trong SQL Server với cú pháp và những ví dụ cụ thể để dễ hình dung và nắm bắt hàm tốt hơn.

Mô tả

Hàm CAST trong SQL Server chuyển đổi một biểu thức từ một kiểu dữ liệu này sang kiểu dữ liệu khác. Nếu chuyển đổi không thành công, CAST sẽ báo lỗi, ngược lại nó sẽ trả về giá trị chuyển đổi tương ứng.

Cú pháp

Để sử dụng hàm CAST trong SQL Server, ta dùng cú pháp như sau:

CAST(bieuthuc AS kieudulieu [(do_dai)])

Tham số:

  • bieuthuc: giá trị để chuyển đổi sang kiểu dữ liệu khác, cũng có thể là tên của một cột trong bảng hoặc một biểu thức tính toán cần chuyển sang kiểu dữ liệu mới.
  • kieudulieu: tên kiểu dữ liệu mới mà biểu thức sẽ được chuyển đổi sang. Có thể là một trong những kiểu như sau: bigint, int, smallint, tinyint, bit, decimal, numeric, money, smallmoney, float, real, datetime, smalldatetime, char, varchar, text, nchar, nvarchar, ntext, binary, varbinary hoặc image.
  • do_dai (không bắt buộc): độ dài kiểu dữ liệu cho kết quả của char, varchar, nchar, nvarchar, binaryvarbinary.

Lưu ý:

  • Khi chuyển đổi kiểu dữ liệu float hay numeric sang số nguyên int, hàm cast sẽ cắt phần thập phân phía sau.
  • Xem thêm các hàm CONVERT, TRY_CASTTRY_CONVERT.
  • CAST có thể được sử dụng trong các phiên bản sau của SQL Server: SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005.

Ví dụ

Hãy xem và khám phá một số ví dụ về hàm CAST trong SQL Server.

SELECT CAST(14.85 AS int);
Result: 14 (kết quả cắt phần thập phân phía sau)

SELECT CAST(14.85 AS float);
Result: 14.85

SELECT CAST(15.6 AS varchar);
Result: '15.6'

SELECT CAST(15.6 AS varchar(4));
Result: '15.6'

SELECT CAST('15.6' AS float);
Result: 15.6

SELECT CAST('2019-05-02' AS datetime);
Result: '2019-05-02 00:00:00.000'

Dùng Cast và Convert với dữ liệu ngày tháng

Ví dụ này hiện ngày và thời gian hiện tại, dùng Cast để đổi ngày tháng và giờ hiện tại sang kiểu dữ liệu ký tự và cuối cùng dùng Convert hiện ngày tháng & thời gian ở định dạng ISO 8601. Ví dụ này dùng database AdventureWorksDW2019.

SELECT TOP(1)
SYSDATETIME() AS UnconvertedDateTime,
CAST(SYSDATETIME() AS NVARCHAR(30)) AS UsingCast,
CONVERT(NVARCHAR(30), SYSDATETIME(), 126) AS UsingConvertTo_ISO8601
FROM dbo.DimCustomer;

Kết quả:

Cast trong SQL Server

Bạn được gì khi dùng hàm CAST trong SQL Server?

  • Dễ dàng chuyển đổi kiểu dữ liệu của một giá trị hoặc biểu thức.
  • Linh hoạt và nhanh chóng trong chuyển đổi kiểu dữ liệu. Chẳng hạn như chuyển ngày tháng thành số…
  • Đảm bảo tính chính xác của dữ liệu khi truy vấn kết quả trong các phép tính, so sánh hay hiển thị thông tin đúng cách như mong đợi.
  • Tương thích với nhiều kiểu dữ liệu khác nhau trong một truy vấn. Nhờ đó, bạn dễ dàng kết hợp hoặc so sánh dữ liệu mong muốn.
  • Định dạng dữ liệu như ý muốn hay theo yêu cầu của ứng dụng hoặc đối tác.

Những câu hỏi thường gặp về hàm cast trong SQL Server

Hàm cast trong SQL Server hỗ trợ những kiểu dữ liệu nào?

  • Kiểu dữ liệu ngày giờ: DATE, TIME, TIMESTAMP, và các kiểu dữ liệu ngày giờ khác.
  • Kiểu dữ liệu ký tự: CHAR, VARCHAR, TEXT, và các kiểu dữ liệu ký tự khác.
  • Kiểu dữ liệu số: INTEGER, BIGINT, FLOAT, DOUBLE PRECISION, DECIMAL, và nhiều hơn thế nữa.

Lệnh cast trong SQL Server được dùng trong câu lệnh nào?

Bạn có thể dùng CAST SQL Server với những câu lệnh như SELECT, INSERT, UPDATE, và DELETE.

Bài trước: Hàm YEAR trong SQL Server

Bài tiếp: Hàm CONVERT trong SQL Server

Thứ Hai, 21/08/2023 16:55
3,429 👨 69.466
0 Bình luận
Sắp xếp theo
    ❖ SQL Server