CONVERT()
chức năng cho phép bạn chuyển đổi giữa các kiểu dữ liệu. Nó tương tự với CAST()
nhưng một trong những lợi ích của CONVERT()
nghĩa là, khi bạn chuyển đổi từ kiểu dữ liệu ngày / giờ thành một chuỗi, bạn có thể thêm đối số tùy chọn chỉ định kiểu mà bạn muốn giá trị trả về. Ví dụ:bạn có thể trả về kiểu đó là dd .mm.yyyy , yyyy-mm-dd , dd mon yyyy , v.v.
Bài viết này chứa các ví dụ về các kiểu khác nhau mà bạn có thể trả về khi chuyển đổi giá trị ngày / giờ thành một chuỗi bằng cách sử dụng CONVERT()
trong SQL Server.
Ví dụ cơ bản
Kiểu mặc định khi chuyển đổi từ ngày giờ và smalldatetime kiểu dữ liệu là 0
và 100
(chúng đại diện cho cùng một phong cách). Do đó, khi bạn không cung cấp một kiểu (thông số thứ ba), thì đây là cách nó được tạo kiểu:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar, @date) AS Converted;
Kết quả:
+-------------------------+---------------------+ | Original | Converted | |-------------------------+---------------------| | 2018-06-07 03:08:21.997 | Jun 7 2018 3:08AM | +-------------------------+---------------------+
Tuy nhiên, bạn sẽ nhận được một kết quả khác nếu loại dữ liệu ban đầu không phải là datetime hoặc smalldatetime .
Nếu bạn cần nó được trả về theo một kiểu khác, bạn sẽ cần chỉ định đối số thứ ba.
Kiểu có năm chữ số
Dưới đây là các ví dụ về các giá trị khác nhau mà bạn có thể sử dụng để chỉ định kiểu bằng cách sử dụng thành phần năm gồm hai chữ số.
Kiểu từ 1 đến 6
DECLARE @date datetime2 = '2018-06-07'; SELECT CONVERT(nvarchar(30), @date, 1) AS '1', CONVERT(nvarchar(30), @date, 2) AS '2', CONVERT(nvarchar(30), @date, 3) AS '3', CONVERT(nvarchar(30), @date, 4) AS '4', CONVERT(nvarchar(30), @date, 5) AS '5', CONVERT(nvarchar(30), @date, 6) AS '6';
Kết quả:
+----------+----------+----------+----------+----------+-----------+ | 1 | 2 | 3 | 4 | 5 | 6 | |----------+----------+----------+----------+----------+-----------| | 06/07/18 | 18.06.07 | 07/06/18 | 07.06.18 | 07-06-18 | 07 Jun 18 | +----------+----------+----------+----------+----------+-----------+
Kiểu 7 đến 6
DECLARE @date datetime2 = '2018-06-07'; SELECT CONVERT(nvarchar(30), @date, 7) AS '7', CONVERT(nvarchar(30), @date, 8) AS '8', CONVERT(nvarchar(30), @date, 10) AS '10', CONVERT(nvarchar(30), @date, 11) AS '11', CONVERT(nvarchar(30), @date, 12) AS '12', CONVERT(nvarchar(30), @date, 14) AS '14';
Kết quả:
+------------+----------+----------+----------+--------+------------------+ | 7 | 8 | 10 | 11 | 12 | 14 | |------------+----------+----------+----------+--------+------------------| | Jun 07, 18 | 00:00:00 | 06-07-18 | 18/06/07 | 180607 | 00:00:00.0000000 | +------------+----------+----------+----------+--------+------------------+
Kiểu có bốn chữ số năm
Dưới đây là các ví dụ về các giá trị khác nhau mà bạn có thể sử dụng để chỉ định kiểu bằng cách sử dụng thành phần năm bốn chữ số.
Kiểu 100 đến 103
DECLARE @date datetime2 = '2018-06-07 02:35:52.8537677'; SELECT CONVERT(nvarchar(30), @date, 100) AS '100', CONVERT(nvarchar(30), @date, 101) AS '101', CONVERT(nvarchar(30), @date, 102) AS '102', CONVERT(nvarchar(30), @date, 103) AS '103';
Kết quả:
+---------------------+------------+------------+------------+ | 100 | 101 | 102 | 103 | |---------------------+------------+------------+------------| | Jun 7 2018 2:35AM | 06/07/2018 | 2018.06.07 | 07/06/2018 | +---------------------+------------+------------+------------+
Kiểu 104 đến 108
DECLARE @date datetime2 = '2018-06-07 02:35:52.8537677'; SELECT CONVERT(nvarchar(30), @date, 104) AS '104', CONVERT(nvarchar(30), @date, 105) AS '105', CONVERT(nvarchar(30), @date, 106) AS '106', CONVERT(nvarchar(30), @date, 107) AS '107', CONVERT(nvarchar(30), @date, 108) AS '108';
Kết quả:
+------------+------------+-------------+--------------+----------+ | 104 | 105 | 106 | 107 | 108 | |------------+------------+-------------+--------------+----------| | 07.06.2018 | 07-06-2018 | 07 Jun 2018 | Jun 07, 2018 | 02:35:52 | +------------+------------+-------------+--------------+----------+
Kiểu 109 đến 112
DECLARE @date datetime2 = '2018-06-07 02:35:52.8537677'; SELECT CONVERT(nvarchar(30), @date, 109) AS '109', CONVERT(nvarchar(30), @date, 110) AS '110', CONVERT(nvarchar(30), @date, 111) AS '111', CONVERT(nvarchar(30), @date, 112) AS '112';
Kết quả:
+--------------------------------+------------+------------+----------+ | 109 | 110 | 111 | 112 | |--------------------------------+------------+------------+----------| | Jun 7 2018 2:35:52.8537677AM | 06-07-2018 | 2018/06/07 | 20180607 | +--------------------------------+------------+------------+----------+
Kiểu 113 đến 114
DECLARE @date datetime2 = '2018-06-07 02:35:52.8537677'; SELECT CONVERT(nvarchar(30), @date, 113) AS '113', CONVERT(nvarchar(30), @date, 114) AS '114';
Kết quả:
+------------------------------+------------------+ | 113 | 114 | |------------------------------+------------------| | 07 Jun 2018 02:35:52.8537677 | 02:35:52.8537677 | +------------------------------+------------------+
Kiểu 120 đến 127
DECLARE @date datetime2 = '2018-06-07'; SELECT CONVERT(nvarchar(30), @date, 120) AS '120', CONVERT(nvarchar(30), @date, 126) AS '126', CONVERT(nvarchar(30), @date, 127) AS '127';
Kết quả:
+---------------------+---------------------+---------------------+ | 120 | 126 | 127 | |---------------------+---------------------+---------------------| | 2018-06-07 00:00:00 | 2018-06-07T00:00:00 | 2018-06-07T00:00:00 | +---------------------+---------------------+---------------------+
Kiểu 130
DECLARE @date datetime2 = '2018-06-07'; SELECT CONVERT(nvarchar(30), @date, 130) AS '130';
Kết quả:
+--------------------------------+ | 130 | |--------------------------------| | 24 رمضان 1439 12:00:00.0000000 | +--------------------------------+
Microsoft cảnh báo rằng giá trị này không hiển thị chính xác trên cài đặt SSMS mặc định của Hoa Kỳ.
Kiểu 131
DECLARE @date datetime2 = '2018-06-07'; SELECT CONVERT(nvarchar(30), @date, 131) AS '131';
Kết quả:
+-------------------------------+ | 131 | |-------------------------------| | 24/09/1439 12:00:00.0000000AM | +-------------------------------+
Bạn có thể đọc thêm về các kiểu ngày / giờ có sẵn trên trang web của Microsoft.