Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

CONVERT () từ Ngày / Giờ thành Ví dụ về chuỗi trong SQL Server

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ờ smalldatetime kiểu dữ liệu là 0100 (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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng cột thứ tự sắp xếp trong bảng cơ sở dữ liệu

  2. Hiểu máy chủ SQL luôn được mã hóa

  3. Đồng thời lạc quan:IsConcurrencyToken và RowVersion

  4. Tôi có nên thiết kế một bảng với khóa chính là varchar hoặc int?

  5. Kiểm tra tình trạng máy chủ SQL chủ động, Phần 4:LỖI