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 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 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 kiểu date). Nếu chuyển đổi thất bại, CONVERT báo lỗi, ngược lại trả về giá trị chuyển đổi tương ứng.
Cú pháp
Để dùng hàm CONVERT trong SQL Server, ta dùng cú pháp sau:
CONVERT (kieudulieu (do_dai), bieuthuc, dinh_dang)
Tham số :
- kieudulieu: tên kiểu dữ liệu mới mà biểu thức sẽ chuyển sang. Có thể là: 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 kiểu dữ liệu cho kết quả char, varchar, nchar, nvarchar, binary, varbinary.
- bieuthuc: giá trị chuyển sang kiểu khác, cũng có thể là tên cột hoặc biểu thức tính toán cần chuyển kiểu.
- dinh_dang (tùy chọn): số chỉ định định dạng chuyển dữ liệu từ date sang chuỗi. Bảng dưới mô tả các định dạng thường dùng trong 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, CONVERT cắt phần thập phân.
- Xem thêm CAST, TRY_CAST, TRY_CONVERT.
- CONVERT dùng được trong SQL Server: 2017, 2016, 2014, 2012, 2008 R2, 2008, 2005.
Ví dụ
Xem ví dụ hàm CONVERT trong SQL Server.
SELECT CONVERT(int, 14.85);
Kết quả: 14 (cắt phần thập phân)
SELECT CONVERT(float, 14.85);
Kết quả: 14.85
SELECT CONVERT(varchar, 15.6);
Kết quả: '15.6'
SELECT CONVERT(varchar(4), 15.6);
Kết quả: '15.6'
SELECT CONVERT(float, '15.6');
Kết quả: 15.6
SELECT CONVERT(datetime, '2019-05-02');
Kết quả: '2019-05-02 00:00:00.000'
SELECT CONVERT(varchar, '05/02/2019', 101);
Kết quả: '05/02/2019'