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
0100mon dd yyyy hh:miAM/PM (Default)
1101mm/dd/yyyy (US standard)
2102yy.mm.dd (ANSI standard)
3103dd/mm/yy (British/French standard)
4104dd.mm.yy (German standard)
5105dd-mm-yy (Italian standard)
6106dd mon yy
7107Mon dd, yy
8108hh:mi:ss
9109mon dd yyyy hh:mi:ss:mmmAM/PM
10110mm-dd-yy (USA standard)
11111yy/mm/dd (Japan standard)
12112yymmdd (ISO standard)
13113dd mon yyyy hh:mi:ss:mmm (Europe standard - 24 hour clock)
14114hh:mi:ss:mmm (24 hour clock)
20120yyyy-mm-dd hh:mi:ss (ODBC canonical - 24 hour clock)
21121yyyy-mm-dd hh:mi:ss:mmm (ODBC canonical - 24 hour clock)
126yyyy-mm-ddThh:mi:ss:mmm (ISO8601 standard)
127yyyy-mm-ddThh:mi:ss:mmmZ (ISO8601 standard)
130dd mon yyyy hh:mi:ss:mmmAM/PM (Hijri standard)
131dd/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 CASTTRY_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

Không

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ài trước: Hàm CAST trong SQL Server

Bài tiếp: Hàm TRY_CAST trong SQL Server

Thứ Năm, 28/09/2023 17:01
4,311 👨 100.509
0 Bình luận
Sắp xếp theo
    ❖ SQL Server