Computer >> Hướng Dẫn 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 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 cụ thể và ví dụ để dễ hình dung và nắm bắt hàm.

Mô tả

Hàm TRY_CONVERT trong SQL Server cho phép chuyển biểu thức sang kiểu dữ liệu mong muốn nhưng có thể theo định dạng nhất định (đặc biệt cho date). Nếu chuyển đổi thất bại, TRY_CONVERT trả về NULL, ngược lại trả về giá trị chuyển đổi.

Cú pháp

Để dùng TRY_CONVERT trong SQL Server, ta dùng cú pháp:

 TRY_CONVERT(kieudulieu(do_dai), bieuthuc, dinh_dang) 

Tham số :

  1. kieudulieu: kiểu dữ liệu mới: bigint, int, smallint, tinyint, bit, decimal, numeric, money, smallmoney, float, real, datetime, smalldatetime, char, varchar, text, nchar, nvarchar, ntext, binary, varbinary, image.
  2. do_dai (tùy chọn): độ dài cho char, varchar, nchar, nvarchar, binary, varbinary.
  3. bieuthuc: giá trị chuyển kiểu, có thể là tên cột hoặc biểu thức.
  4. dinh_dang (tùy chọn): số chỉ định định dạng chuyển date sang chuỗi. Bảng định dạng giống CONVERT.

Bảng định dạng ngày (Year format)

(yy) - năm 2 chữ số; (yyyy) - năm 4 chữ số

StyleFormatHiển thị
0/100mon dd yyyy hh:miAM/PMMặc định
1/101mm/dd/yyyyTiêu chuẩn US
2/102yy.mm.ddTiêu chuẩn ANSI
3/103dd/mm/yyTiêu chuẩn Anh/Pháp
4/104dd.mm.yyTiêu chuẩn Đức
5/105dd-mm-yyTiêu chuẩn Ý
6/106dd mon yy
7/107Mon dd, yy
8/108hh:mi:ss
9/109mon dd yyyy hh:mi:ss:mmmAM/PM
10/110mm-dd-yyTiêu chuẩn US
11/111yy/mm/ddTiêu chuẩn Nhật
12/112yymmddTiêu chuẩn ISO
13/113dd mon yyyy hh:mi:ss:mmmTiêu chuẩn Châu Âu - 24h
14/114hh:mi:ss:mmmĐồng hồ 24h
20/120yyyy-mm-dd hh:mi:ssODBC canonical - 24h
21/121yyyy-mm-dd hh:mi:ss:mmmODBC canonical - 24h
126yyyy-mm-ddThh:mi:ss:mmmISO8601
127yyyy-mm-ddThh:mi:ss:mmmZISO8601
130dd mon yyyy hh:mi:ss:mmmAM/PMHijri
131dd/mm/yy hh:mi:ss:mmmAM/PMHijri

Lưu ý :

  1. Khi chuyển float/numeric sang int, TRY_CONVERT cắt phần thập phân.
  2. Xem thêm CAST, CONVERT, TRY_CAST.
  3. TRY_CONVERT dùng được trong SQL Server: 2017, 2016, 2014, 2012.

Ví dụ

Xem ví dụ hàm TRY_CONVERT trong SQL Server.

SELECT TRY_CONVERT(int, 14.85);

Kết quả: 14 (cắt phần thập phân)

SELECT TRY_CONVERT(float, 14.85);
Kết quả: 14.85 (float không cắt)

SELECT TRY_CONVERT(float, '14 Main St.');
Kết quả: NULL (không chuyển chuỗi thành float)

SELECT TRY_CONVERT(varchar, 15.6);
Kết quả: '15.6' (varchar)

SELECT TRY_CONVERT(varchar(2), 15.6);
Kết quả: NULL (thất bại do không phù hợp varchar(2))

SELECT TRY_CONVERT(datetime, '2018-09-13');
Kết quả: '2018-09-13 00:00:00.000' (datetime)

SELECT TRY_CONVERT(varchar, '2018-09-13', 101);
Kết quả: '09/13/2018' (varchar style 101 - mm/dd/yyyy US)