2010-12-27 33 views
7

Làm thế nào tôi có thể nhận được tổng số phút cho datetime sql?datetime to totalminute in sql

Hãy nói rằng:

select getdate() from table 

Bằng cách này, tôi sẽ nhận được tất cả mọi thứ, nhưng tôi chỉ muốn để có được tổng phút. Ví dụ: nếu thời gian là 07:10:35, tôi muốn 430.

Làm cách nào để đạt được điều đó?

Giá trị từ trường là 01-01-2001 07:10:40 Kết quả tôi muốn chỉ là 430 ((7 * 60) +10).

+3

Câu hỏi của bạn không phải là đặc biệt rõ ràng. –

Trả lời

17

Dưới đây là một ví dụ:

DECLARE @dt datetime 
SET @dt = '01-01-2001 07:10:20' 
SELECT DATEDIFF(MINUTE, DATEADD(DAY, DATEDIFF(DAY, 0, @dt), 0), @dt) 
+0

trả về lỗi này (Không thể gán giá trị mặc định cho biến cục bộ.) – william

+0

Ồ, xin lỗi; Tôi đã bỏ lỡ thực tế bạn đang ở trên SQL Server 2005. Tôi sẽ sửa nó. –

+0

Purrrrrrrrrfect – Mukus

1

Truy vấn này sẽ trả lại số phút qua nửa đêm.

declare @now datetime = getdate() 
declare @midnight datetime = CAST(FLOOR(CAST(@now AS FLOAT)) AS DATETIME) 
select datediff(mi, @midnight,@now) 

CAST(FLOOR(CAST("yourDateTimeHere" AS FLOAT)) AS DATETIME) 

chuyển đổi bất kỳ datetime đến nửa đêm. Sử dụng dateiff với hàm "mi" để nhận số phút qua nửa đêm.

Sử dụng sách trực tuyến với ngày và thời gian hơn toán

+0

Thuật ngữ 'nửa đêm' có thể gây hiểu lầm ở đây, vì bạn có thể nghĩ rằng có nghĩa là '23: 59: 59', nhưng thay vào đó là' 00: 00: 00'. Ví dụ: Nếu bạn muốn thực hiện một số phép tính dựa trên 'nửa đêm' của ngày 31 tháng 12 năm 2016, bạn có thể mong đợi 'Ngày 31 tháng 12 11: 59: 59' hoặc có thể là' Jan 01 2017 00: 00: 00', nhưng có thể không 'Dec 31 00: 00: 00', đó là những gì mã của bạn ở trên sẽ cung cấp cho bạn. – JoeBrockhaus

+0

Tôi nghĩ rằng thuật ngữ 'nửa đêm' về mặt mã hóa và thời gian 24 giờ/quân sự là khá rõ ràng. 00:00:00 luôn là ngày bắt đầu của một ngày mới, vì vậy nếu bạn nói 'Nửa đêm ngày 31 tháng 12 năm 2016', nó luôn luôn có nghĩa là 2016/12/31 00: 00: 00.Đã có đồng hồ 12 giờ và AM/PM thiết kế, 12:00:00 AM là nửa đêm, và nó được chỉ định là buổi sáng của AM, nó chỉ là nó bắt đầu lúc 12 đó là gây hiểu lầm. –