Hàm TRY_CAST trong SQL Server

Mô tả

Hàm TRY_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, TRY_CAST sẽ trả về NULL, ngược lại nó sẽ trả về giá trị chuyển đổi tương ứng.

Cú pháp

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

TRY_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, binary và varbinary.

Lưu ý:

  • Khi chuyển đổi kiểu dữ liệu float hay numeric sang số nguyên int, hàm TRY_CAST sẽ cắt phần thập phân phía sau.
  • Xem thêm các hàm CAST, CONVERT và TRY_CONVERT.
  • TRY_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.

Ví dụ

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

SELECT TRY_CAST(14.85 AS int); Result: 14                     (kết qu là mt giá tr int b ct phn thp phân) SELECT TRY_CAST(14.85 AS float); Result: 14.85                (kết qu được tr v dưới dng giá tr float và không b ct ngn) SELECT TRY_CAST('14 Main St.' AS float); Result: NULL                (kết qu là NULL vì không th chuyn đổi giá tr chui này thành float) SELECT TRY_CAST(15.6 AS varchar); Result: '15.6'                (kết qu được tr v dưới dng varchar) SELECT TRY_CAST(15.6 AS varchar(2));  Result: NULL                (kết qu là NULL vì chuyn đổi không thành công do giá tr không phù hp vi 
varchar độ dài 2 ký tự) SELECT TRY_CAST('2018-09-13' AS datetime); Result: '2018-09-13 00:00:00.000' (kết qu được tr v dưới dng datetime)