Hàm CONVERT trong SQL Server
Hàm CONVERT trong SQL Server được dùng khá phổ biến. Dưới đây là những điều bạn cần biết về CONVERT SQL Server.
Bên cạnh các hàm tiện ích, SQL còn có những hàm chuyển đổi kiểu tuyệt vời. Chúng hữu ích trong trường hợp truy vấn muốn đầu vào ở kiểu dữ liệu cụ thể nhưng nó lại nhận được kiểu dữ liệu khác. Trong trường hợp này, bạn cần dùng tới hàm CONVERT để chuyển kiểu dữ liệu như ý.
Ngầm định và tường minh
Quá trình thay đổi kiểu dữ liệu của một giá trị thành kiểu dữ liệu khác được gọi là chuyển đổi kiểu dữ liệu, và gần như mọi ngôn ngữ lập trình đều bao gồm một số kiểu hàm hoặc chức năng chuyển đổi dữ liệu.
Khi thảo luận chi tiết về các hàm chuyển đổi trong SQL, đầu tiên, bạn có thể tách riêng quá trình chuyển đổi dữ liệu thành hai phần: implicit - ngầm định và explicit - tường minh. Chuyển đổi ngầm định được thực hiện bởi SQL Sever cho các nhu cầu nội bộ. Chuyển đổi tường minh được thực hiện rõ ràng bởi lập trình viên cơ sở dữ liệu hoặc admin. Bạn sẽ nhận được sự trợ giúp của những chức năng liên quan.
Ở bài viết này, chúng ta sẽ tập trung tìm hiểu hàm chuyển kiểu dữ liệu hay CONVERT trong SQL Server.
Mô tả
Hàm CONVERT trong SQL Server cho phép bạn có thể chuyển đổi một biểu thức nào đó sang một kiểu dữ liệu bất kỳ mong muốn nhưng có thể theo một định dạng nào đó (đặc biệt đối với kiểu dữ liệu ngày). Nếu chuyển đổi không thành công, CONVERT sẽ báo lỗi, ngược lại nó sẽ trả về giá trị chuyển đổi tương ứng.
Cú pháp
Để sử dụng hàm CONVERT trong SQL Server, ta dùng cú pháp như 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ẽ được chuyển đổi sang. Có thể là một trong những kiểu như sau: bigint, int, smallint, tinyint, bit, decimal, numeric, money, smallmoney, float, real, datetime, smalldatetime, char, varchar, text, nchar, nvarchar, ntext, binary, varbinary hoặc image.
- do_dai (không bắt buộc): độ dài kiểu dữ liệu cho kết quả của char, varchar, nchar, nvarchar, binary và varbinary.
- bieuthuc: giá trị để chuyển đổi sang kiểu dữ liệu khác, cũng có thể là tên của một cột trong bảng hoặc một biểu thức tính toán cần chuyển sang kiểu dữ liệu mới.
- dinh_dang (không bắt buộc): là một con số chỉ định việc định dạng cho việc chuyển đổi dữ liệu từ dạng ngày sang dạng chuỗi. Bảng bên dưới mô tả một số định dạng thường dùng trong hàm 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 (Default) |
1 | 101 | mm/dd/yyyy (US standard) |
2 | 102 | yy.mm.dd (ANSI standard) |
3 | 103 | dd/mm/yy (British/French standard) |
4 | 104 | dd.mm.yy (German standard) |
5 | 105 | dd-mm-yy (Italian standard) |
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 (USA standard) |
11 | 111 | yy/mm/dd (Japan standard) |
12 | 112 | yymmdd (ISO standard) |
13 | 113 | dd mon yyyy hh:mi:ss:mmm (Europe standard - 24 hour clock) |
14 | 114 | hh:mi:ss:mmm (24 hour clock) |
20 | 120 | yyyy-mm-dd hh:mi:ss (ODBC canonical - 24 hour clock) |
21 | 121 | yyyy-mm-dd hh:mi:ss:mmm (ODBC canonical - 24 hour clock) |
126 | yyyy-mm-ddThh:mi:ss:mmm (ISO8601 standard) | |
127 | yyyy-mm-ddThh:mi:ss:mmmZ (ISO8601 standard) | |
130 | dd mon yyyy hh:mi:ss:mmmAM/PM (Hijri standard) | |
131 | dd/mm/yy hh:mi:ss:mmmAM/PM (Hijri standard) |
Lưu ý:
- Khi chuyển đổi kiểu dữ liệu float hay numeric sang số nguyên int, hàm CONVERT sẽ cắt phần thập phân phía sau.
- Xem thêm các hàm CAST và TRY_CAST, TRY_CONVERT.
- CONVERT có thể được sử dụng trong các phiên bản sau của SQL Server: SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005.
Ví dụ
Hãy xem và khám phá một số ví dụ về hàm CONVERT trong SQL Server.
SELECT CONVERT(int, 14.85);
Result: 14 (kết quả cắt phần thập phân phía sau)
SELECT CONVERT(float, 14.85);
Result: 14.85
SELECT CONVERT(varchar, 15.6);
Result: '15.6'
SELECT CONVERT(varchar(4), 15.6);
Result: '15.6'
SELECT CONVERT(float, '15.6');
Result: 15.6
SELECT CONVERT(datetime, '2019-05-02');
Result: '2019-05-02 00:00:00.000'
SELECT CONVERT(varchar, '05/02/2019', 101);
Result: '05/02/2019'
Những lựa chọn thay thế cho hàm CONVERT trong SQL Server
Hàm CAST
Hàm CAST chuyển đổi một giá trị của kiểu dữ liệu bất kỳ sang kiểu dữ liệu cụ thể. Hàm CAST tương tự như hàm CONVERT SQL Server nhưng có một chút khác biệt.
Như đã đề cập, với hàm CONVERT, bạn có thể đồng thời chuyển đổi kiểu dữ liệu và xác định cách làm việc đó bằng đối số kiểu. Đối với hàm CAST, bạn không thể làm việc này.
Công thức của hàm CAST như sau: CAST(expression AS datatype(length))
Hàm FORMAT
Hàm FORMAT trả về một giá trị chuỗi trong kiểu dữ liệu cụ thể. Vì thế, nó có thể được dùng để định dạng ngày tháng/thời gian và giá trị chuỗi số. Công thức của hàm FORMAT như sau:
FORMAT (value, format [, culture])
Hàm PARSE
Hàm PARSE trả về một giá trị chuỗi của một biểu thức theo kiểu ngày tháng/giờ hoặc số. Công thức của hàm PARSE như sau:
PARSE ( string_value AS data_type [ USING culture ] )
So sánh sự khác biệt giữa hàm CONVERT, CAST, FORMAT và PARSE
Mục so sánh | CONVERT | CAST | FORMAT | PARSE |
Đối số | Biểu thức SQL | Biểu thức SQL | Biểu thức SQL | Chuỗi |
Giá trị mục tiêu | Được chỉ định bởi một đối số | Được chỉ định bởi một đối số | Được chỉ định bởi một đối số | Được chỉ định bởi một đối số |
Kiểu/văn hóa | Có | Không | Có | Không |
Kiểu dữ liệu được hỗ trợ chuyển đổi | Bất kỳ | Bất kỳ | Bất kỳ | Từ một chuỗi tới ngày tháng/thời gian và các giá trị số |
Server hoạt động | · SQL Server (Bắt đầu từ 2008) · Azure SQL Database · Azure SQL Data Warehouse · Azure SQL Managed Instance · Azure Synapse Analytics · Analytics Platform System (PDW) | · SQL Server (Bắt đầu từ 2008) · Azure SQL Database · Azure SQL Data Warehouse · Azure SQL Managed Instance · Azure Synapse Analytics · Analytics Platform System (PDW) | · SQL Server (Bắt đầu từ 2012) · Azure SQL Database · Azure SQL Managed Instance · Azure Synapse Analytics | · SQL Server (tất cả phiên bản được hỗ trợ) · Azure SQL Database · Azure SQL Managed Instance |
Bạn nên đọc
Cũ vẫn chất
-
Sử dụng Comments Tool trong MS Excel
Hôm qua -
Cách thực hiện cuộc gọi thoại hoặc video trên Telegram
Hôm qua -
Cách tải Direct X và cài đặt DirectX trên máy tính
Hôm qua -
Cách cập nhật dữ liệu PivotTable Excel
Hôm qua -
Tổng hợp code Dynasty Warriors Overlords VNG mới nhất
Hôm qua -
Những pass wifi bằng Toán học khiến dân tình muốn nổi điên, bạn có tìm ra được đáp án
Hôm qua -
Mùng 1 tết 2023 là ngày mấy dương lịch? Mùng 1 Tết năm 2023 là thứ mấy?
Hôm qua -
Foxit Reader
-
Cách kiểm tra dung lượng ổ cứng máy tính
Hôm qua -
8 phần mềm giả lập PlayStation tốt nhất cho PC 2024
Hôm qua