2011-08-10 50 views
5

Tôi có một vài câu hỏi liên quan đến ngày tháng trong SQL Server.Microsoft SQL Server 2008 - Ngày

  1. Làm cách nào để tách riêng giá trị datetime "2011-08-10 14: 56: 17.267" thành ngày và dấu thời gian trong hai cột riêng biệt. Ví dụ. Ngày "2011-08-10" và dấu thời gian "14:56:17"

  2. Tôi muốn xóa dấu thời gian khỏi datetime giá trị thành "2011-08-10" và vẫn có thể đặt hàng dữ liệu theo ngày (do đó không được chuyển đổi thành varchar). Cũng có mặt để thay đổi giá trị ngày tháng '10 tháng 8 năm 2011 'và vẫn có thể sắp xếp (không theo thứ tự bảng chữ cái nhưng theo thứ tự ngày thực).

Cảm ơn bạn, HL

+0

Hai câu hỏi này có lẽ nên được đăng riêng biệt. –

Trả lời

0

sử dụng chức năng CONVERT với các thông số từ nguồn http://www.mssqltips.com/tip.asp?tip=1145

-- simple conversion example: 
SELECT CONVERT(VARCHAR(10), GETDATE(), 102) -- for date 
SELECT CONVERT(VARCHAR(10), GETDATE(), 8) -- for time 
6

Đối với người đầu tiên:

UPDATE atable 
SET 
    DateColumn = CAST(DateTimeColumn AS date), 
    TimeColumn = CAST(DateTimeColumn AS time) 

Đối với một thứ hai, ngày định dạng hiển thị là một cái gì đó không liên quan đến ngày giá trị. Bạn có thể đặt kết quả theo cột ngày tháng, nhưng trong mệnh đề SELECT bạn có thể sử dụng CONVERT để hiển thị ngày theo định dạng mong muốn. Ví dụ:

SELECT 
    CONVERT(varchar, DateColumn, 106) AS Date, 
    … 
FROM atable 
ORDER BY DateColumn 
Các vấn đề liên quan