SQL Server có gì để làm với một ngày và thời gian!
Nó chỉ là một biểu diễn nhị phân của một số 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.
Trong phiên bản mới hơn của SQL Server, nó được gọi là RowVersion
- vì đó thực sự là những gì nó được. Xem số MSDN docs on ROWVERSION:
Là loại dữ liệu cho thấy số nhị phân được tạo tự động duy nhất trong cơ sở dữ liệu. rowversion thường được sử dụng như một cơ chế cho các hàng bảng dán phiên bản. Loại dữ liệu chuyển đổi hàng là chỉ là số gia tăng và không giữ ngày hoặc thời gian. Để ghi lại ngày hoặc giờ, hãy sử dụng datetime2 loại dữ liệu.
Vì vậy, bạn không có thể chuyển đổi một SQL Server TIMESTAMP
vào một ngày/giờ - nó chỉ là không phải là một ngày/giờ. Tuy nhiên, nếu bạn đang nói dấu thời gian nhưng thực sự bạn có nghĩa là một cột DATETIME
- thì 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ủ đề CAST and CONVERT trong trợ giúp MSDN. Chúng được SQL Server định nghĩa và hỗ trợ "out of the box". Mọi thứ khác không được hỗ trợ, ví dụ: bạn phải thực hiện rất nhiều thao tác đúc thủ công và ghép nối (không được khuyến nghị).
Các định dạng mà bạn đang tìm kiếm trông hơi giống như ODBC kinh điển (style = 121):
DECLARE @today DATETIME = SYSDATETIME()
SELECT CONVERT(VARCHAR(50), @today, 121)
cho:
2011-11-14 10:29:00.470
SQL Server 2012 will finally have a FORMAT
function để làm định dạng tùy chỉnh ... ...
Nguồn
2011-11-14 09:18:28
Có lẽ là con đường lớn nhất của tôi với SQL Server. Tại sao gọi nó là một dấu thời gian nếu tôi không thể nói thời gian với nó? – BelgoCanadian
@BelgoCanadian: hỏi Sybase - đó là một tính năng đã tồn tại trong Sybase/SQL Server mãi mãi ..... –