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

Hàm TRY_CONVERT 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_CONVERT 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_CONVERT trong SQL Server cho phép bạn chuyển đổi một biểu thức thành bất kỳ kiểu dữ liệu mong muốn nào nhưng có thể theo một định dạng nhất định (đặc biệt là đối với kiểu dữ liệu ngày tháng). Nếu chuyển đổi không thành công, TRY_CONVERT 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_CONVERT trong SQL Server, chúng tôi sử dụng cú pháp sau:

 TRY_CONVERT(kieudulieu(do_dai), bieuthuc, dinh_dang) 

Thông số :

  1. 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.
  2. do_dai (tùy chọn):độ dài kiểu dữ liệu cho kết quả của char, varchar, nchar, nvarchar, binary và varbinary.
  3. 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.
  4. dinh_dang (tùy chọn):là số chỉ định dạng chuyển đổi dữ liệu từ dạng ngày sang dạng chuỗi. Bảng dưới đây mô tả một số định dạng phổ biến được sử dụng trong hàm TRY_CONVERT.
Định dạng năm
(yy) Định dạng năm
(yyyy) Hiển thị dữ liệu 0 100 mon dd yyyy hh:miAM / PM (Mặc định) 1 101 mm / dd / yyyy (tiêu chuẩn Hoa Kỳ) 2 102 yy.mm.dd (tiêu chuẩn ANSI) 3 103 dd / mm / yy (tiêu chuẩn Anh / Pháp 4 104 dd .mm.yy (tiêu chuẩn Đức) 5 105 dd-mm-yy (tiêu chuẩn Ý) 6 106 dd mon yy 7 107 Mon dd, yy 8 108 hh:mi:ss 9 109 mon dd yyyy hh:mi:ss:mmmAM / PM 10 110 mm-ddyy (tiêu chuẩn Hoa Kỳ) 11 111 yy / mm / dd (tiêu chuẩn Nhật Bản) 12 112 yymmdd (tiêu chuẩn ISO) 13 113 dd mon yyyy hh:mi:ss:mmm (tiêu chuẩn Châu Âu - đồng hồ 24 giờ) 14 114 hh:mi:ss:mmm (24 giờ đồng hồ) 20 120 yyyy-mm-dd hh:mi:ss (ODBC canonical - đồng hồ 24 giờ) 21 121 yyyy-mm-dd hh:mi:ss:mmm (ODBC canonical - Đồng hồ 24 giờ) 126 yyyy-mm-ddThh:mi:ss:mmm (tiêu chuẩn ISO8601) 127 yyyy-mm-ddThh:mi:ss:mmmZ (tiêu chuẩn ISO8601) 130 dd y yyyy hh:mi:ss:mmmAM / PM ( Tiêu chuẩn Hijri) 131 dd / mm / yy hh:mi:ss:mmmAM / PM (Tiêu chuẩn Hijri)

Lưu ý :

  1. Khi chuyển đổi kiểu dữ liệu float hoặc số thành số nguyên int, TRY_CONVERT sẽ cắt phần thập phân phía sau.
  2. Xem thêm các hàm CAST và CONVERT, TRY_CAST.
  3. TRY_CONVERT 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_CONVERT trong SQL Server.

 SELECT TRY_CONVERT(int, 14.85); 
Result: 14
(kết quả là một giá trị int bị cắt phần thập phân)


SELECT TRY_CONVERT(float, 14.85);
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_CONVERT(float, '14 Main St.');
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_CONVERT(varchar, 15.6);
Result: '15.6'
(kết quả được trả về dưới dạng varchar)


SELECT TRY_CONVERT(varchar(2), 15.6);
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_CONVERT(datetime, '2018-09-13');
Result: '2018-09-13 00:00:00.000'
(kết quả được trả về dưới dạng datetime)


SELECT TRY_CONVERT(varchar, '2018-09-13', 101);
Result: '09/13/2018'
(kết quả được trả về dưới dạng varchar với kiểu 101 - mm/dd/yyyy (tiêu chuẩn Hoa Kỳ))