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ố :
- 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.
- do_dai (tùy chọn): độ dài cho char, varchar, nchar, nvarchar, binary, varbinary.
- bieuthuc: giá trị chuyển kiểu, có thể là tên cột hoặc biểu thức.
- 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ố
| Style | Format | Hiển thị |
|---|---|---|
| 0/100 | mon dd yyyy hh:miAM/PM | Mặc định |
| 1/101 | mm/dd/yyyy | Tiêu chuẩn US |
| 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-dd-yy | Tiêu chuẩn US |
| 11/111 | yy/mm/dd | Tiêu chuẩn Nhật |
| 12/112 | yymmdd | Tiêu chuẩn ISO |
| 13/113 | dd mon yyyy hh:mi:ss:mmm | Tiêu chuẩn Châu Âu - 24h |
| 14/114 | hh:mi:ss:mmm | Đồng hồ 24h |
| 20/120 | yyyy-mm-dd hh:mi:ss | ODBC canonical - 24h |
| 21/121 | yyyy-mm-dd hh:mi:ss:mmm | ODBC canonical - 24h |
| 126 | yyyy-mm-ddThh:mi:ss:mmm | ISO8601 |
| 127 | yyyy-mm-ddThh:mi:ss:mmmZ | ISO8601 |
| 130 | dd mon yyyy hh:mi:ss:mmmAM/PM | Hijri |
| 131 | dd/mm/yy hh:mi:ss:mmmAM/PM | Hijri |
Lưu ý :
- Khi chuyển float/numeric sang int, TRY_CONVERT cắt phần thập phân.
- Xem thêm CAST, CONVERT, TRY_CAST.
- 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)