Computer >> Máy Tính >  >> Lập trình >> SQL Server

Hàm TRY_CAST trong SQL Server

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

Mô tả

Hàm TRY_CAST trong SQL Server chuyển đổi một biểu thức 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, nếu không sẽ trả về giá trị chuyển đổi tương ứng.

Cú pháp

Để sử dụng hàm TRY_CAST trong SQL Server, chúng tôi sử dụng cú pháp sau:

 TRY_CAST(bieuthuc AS kieudulieu [(do_dai)]) 

Thông số :

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

Lưu ý :

  1. Khi chuyển đổi dữ liệu số thực hoặc số thành số nguyên int, hàm TRY_CAST sẽ cắt phần thập phân phía sau.
  2. Xem thêm các hàm CAST, CONVERT và TRY_CONVERT.
  3. TRY_CAST có thể được sử dụng trong các phiên bản SQL Server mới hơn: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à một giá trị int bị cắt phần thập phân)

SELECT TRY_CAST(14.85 AS float);
Result: 14.85
(kết quả được trả về dưới dạng giá trị float và không bị cắt ngắn)

SELECT TRY_CAST('14 Main St.' AS float);
Result: NULL
(kết quả là NULL vì không thể chuyển đổi giá trị chuỗi này thành float)

SELECT TRY_CAST(15.6 AS varchar);
Result: '15.6'
(kết quả được trả về dưới dạng varchar)

SELECT TRY_CAST(15.6 AS varchar(2));
Result: NULL
(kết quả là NULL vì chuyển đổi không thành công do giá trị không phù hợp với
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 dạng datetime)