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

Cách chuyển đổi cột dấu thời gian của SQL Server sang định dạng ngày giờ

TIMESTAMP của SQL Server loại dữ liệu không có không có gì để làm với ngày và giờ!

Nó chỉ là một biểu diễn thập lục phân của một số nguyên 8 byte liên tiếp - nó chỉ tốt để đảm bảo một hàng không thay đổi kể từ khi nó được đọc.

Bạn có thể đọc số nguyên thập lục phân hoặc nếu bạn muốn một BIGINT . Ví dụ:

SELECT CAST (0x0000000017E30D64 AS BIGINT)

Kết quả là

400756068

Trong các phiên bản SQL Server mới hơn, nó được gọi là RowVersion - vì nó thực sự là như vậy. Xem tài liệu MSDN trên ROWVERSION:

Là một kiểu dữ liệu hiển thị các số nhị phân duy nhất, được tạo tự động trong cơ sở dữ liệu. rowversion thường được sử dụng như một cơ chế cho các hàng trong bảng dập phiên bản. Loại dữ liệu chuyển đổi chỉ là một số tăng dần và không bảo tồn ngày hoặc giờ . Để ghi ngày hoặc giờ, hãy sử dụng loại datetime2data.

Vì vậy, bạn không thể chuyển đổi máy chủ SQL TIMESTAMP đến ngày / giờ - nó không phải là ngày / giờ.

Nhưng nếu bạn đang nói dấu thời gian nhưng thực sự thì bạn có nghĩa là DATETIME - sau đó bạn có thể sử dụng bất kỳ định dạng ngày hợp lệ nào được mô tả trong chủ đề ĐÚC và CHUYỂN ĐỔI trong trợ giúp MSDN. Chúng được xác định và hỗ trợ "out of the box" bởi SQL Server. Bất kỳ thứ gì khác không được hỗ trợ, ví dụ:bạn phải thực hiện nhiều quá trình truyền và nối thủ công (không được khuyến nghị).

Định dạng bạn đang tìm kiếm hơi giống với ODBC canonical (style =121):

DECLARE @today DATETIME = SYSDATETIME()

SELECT CONVERT(VARCHAR(50), @today, 121)

cho:

2011-11-14 10:29:00.470

SQL Server 2012 cuối cùng sẽ có FORMAT chức năng để thực hiện định dạng tùy chỉnh ......



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giới thiệu các biểu thức bảng phổ biến trong SQL Server

  2. Các kỹ thuật tốt hơn để cắt bớt các số không ở đầu trong SQL Server?

  3. Truy vấn được tham số hóa ..... yêu cầu tham số '@units', không được cung cấp

  4. Chuyển danh sách <> sang thủ tục lưu trữ SQL

  5. nhận ID bản ghi SQL mới