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

Cách chuyển đổi giá trị ngày / giờ thành chuỗi trong SQL Server bằng CONVERT ()

Khi sử dụng SQL Server, bạn có thể chuyển đổi giá trị ngày / giờ thành một chuỗi bằng cách sử dụng CONVERT() hàm số. Chức năng này cho phép bạn chuyển đổi giữa các kiểu dữ liệu khác nhau.

Trong bài viết này, chúng tôi sẽ chuyển đổi giữa các loại dữ liệu ngày / giờ khác nhau thành varchar hoặc nvarchar chuỗi.

Một trong những điểm hay về chức năng này là nó cho phép bạn chỉ định kiểu mà ngày sẽ được trả về. Ví dụ:bạn có thể chỉ định xem ngày đó có được trả về là mm / dd / yyyy không , yyyy.mm.dd , Thứ hai, yyyy , v.v. Bạn cũng có thể chỉ định xem thành phần thời gian có được trả lại hay không và nó được tạo kiểu như thế nào.

Cú pháp

Đầu tiên, đây là cách cú pháp chính thức hoạt động:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

Các đối số này được định nghĩa như sau:

expression
Bất kỳ biểu thức hợp lệ nào.
data_type
Kiểu dữ liệu đích. Điều này bao gồm xml , bigint sql_variant . Không thể sử dụng kiểu dữ liệu bí danh.
length
Một số nguyên tùy chọn chỉ định độ dài của kiểu dữ liệu đích. Giá trị mặc định là 30 .
style
Một biểu thức số nguyên chỉ định cách CONVERT() hàm sẽ dịch biểu thức . Đối với giá trị kiểu là NULL, NULL được trả về. data_type xác định phạm vi.

Ví dụ cơ bản

Trong ví dụ này, chúng tôi khai báo một biến và gán một giá trị từ GETDATE() hàm số. Sau đó, chúng tôi trả về giá trị và chúng tôi cũng chuyển đổi giá trị đó thành varchar và trả lại:

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 |
+-------------------------+---------------------+

Độ dài mặc định của kiểu dữ liệu trả về là 30 , vì vậy mặc dù chúng tôi chỉ chỉ định varchar , nó sẽ trả về kết quả là varchar(30) .

Trong ví dụ này, chúng tôi không cung cấp đối số thứ ba để chỉ ra kiểu mà chúng tôi muốn nó trả về. Do đó, nó đã được chuyển đổi bằng cách sử dụng kiểu mặc định cho datetime smalldatetime kiểu dữ liệu, là 0 hoặc 100 (thêm về các kiểu bên dưới).

Chỉ định kiểu

Bạn có thể sử dụng đối số thứ ba để chỉ định kiểu mà giá trị trả về sẽ sử dụng:

DECLARE @date datetime = GETDATE();
SELECT
    @date AS Original,
    CONVERT(varchar(30), @date, 102) AS Converted;

Kết quả:

+-------------------------+-------------+
| Original                | Converted   |
|-------------------------+-------------|
| 2018-06-07 03:42:33.840 | 2018.06.07  |
+-------------------------+-------------+

Trong ví dụ này, chúng tôi đã chỉ định kiểu 102 , là tiêu chuẩn ANSI để hiển thị ngày có thành phần năm bốn chữ số.

Để thay đổi định dạng này thành định dạng ANSI với năm hai chữ số, chúng ta có thể sử dụng kiểu 2 :

DECLARE @date datetime = GETDATE();
SELECT
    @date AS Original,
    CONVERT(varchar(30), @date, 2) AS Converted;

Kết quả:

+-------------------------+-------------+
| Original                | Converted   |
|-------------------------+-------------|
| 2018-06-07 03:44:52.433 | 18.06.07    |
+-------------------------+-------------+

Bạn có thể xem thêm các ví dụ về CONVERT () từ Ngày / Giờ đến Ví dụ về chuỗi trong SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. KHÔNG CÓ VÀ KHÔNG TỒN TẠI

  2. Cuộc gọi ODBC không thành công với thủ tục được lưu trữ - Chuyển qua truy vấn

  3. Giải pháp cho cách đọc tệp nhật ký giao dịch SQL Server mà không có bất kỳ lỗi nào

  4. Các xu hướng trong năm 2020 mà các DBA nên biết

  5. datetime so với datetimeoffset trong SQL Server:Sự khác biệt là gì?