Tôi có bảng có dấu thời gian và tôi muốn phân đoạn bảng này thành các khoảng thời gian một giờ, bắt đầu từ bây giờ và ngược lại một vài giờ. Tôi không thể nhận được kết quả tôi cần với chức năng T-SQL DATEDIFF, vì nó đếm số lần kim phút trôi qua 12 giữa hai ngày - tôi muốn số lần chúng di chuyển qua phút khi nó ở ngay bây giờ giữa dấu thời gian và bây giờ.T-SQL DateDiff - phân vùng theo "toàn bộ giờ trước", thay vì "số phút đã chuyển 00 kể từ"
Có cách nào đơn giản để thực hiện việc này trong T-SQL không?
Cập nhật: Để trả lời nhận xét, đây là một số dữ liệu mẫu, truy vấn tôi hiện đang sử dụng và kết quả tôi nhận được, cũng như kết quả tôi muốn.
dữ liệu mẫu:
TimeStamp
*********
2010-07-20 11:00:00.000
2010-07-20 10:44:00.000
2010-07-20 10:14:00.000
2010-07-20 11:00:00.000
2010-07-20 11:40:00.000
2010-07-20 10:16:00.000
2010-07-20 13:00:00.000
2010-07-20 12:58:00.000
truy vấn hiện tại:
SELECT TimeStamp, DATEDIFF(HOUR, TimeStamp, CURRENT_TIMESTAMP) AS Diff FROM ...
Kết quả:
TimeStamp Diff ********* **** 2010-07-20 11:00:00.000 2 2010-07-20 10:44:00.000 3 2010-07-20 10:14:00.000 3 2010-07-20 11:00:00.000 2 2010-07-20 11:40:00.000 2 2010-07-20 10:16:00.000 3 2010-07-20 13:00:00.000 0 2010-07-20 12:58:00.000 1
Những gì tôi thà có:
-- The time is now, for the sake of the example, 13:40 TimeStamp Diff ********* **** 2010-07-20 11:00:00.000 3 -- +1 2010-07-20 10:44:00.000 3 2010-07-20 10:14:00.000 4 -- +1 2010-07-20 11:00:00.000 3 -- +1 2010-07-20 11:40:00.000 2 or 3 -- edge case, I don't really care which 2010-07-20 10:16:00.000 4 -- +1 2010-07-20 13:00:00.000 1 -- +1 2010-07-20 12:58:00.000 1
Tôi đã đánh dấu kết quả đã thay đổi bằng một số +1
. Ngoài ra, tôi không thực sự quan tâm nếu điều này là 0-lập chỉ mục hoặc 1-lập chỉ mục, nhưng về cơ bản, nếu nó bây giờ 13:40 Tôi muốn các nhịp thời gian đó có được giá trị như nhau để được
12:40-13:40 1 (or 0) 11:40-12:40 2 (or 1) 10:40-11:40 3 (or 2) 09:40-10:40 4 (or 3)
bạn có thể giải thích điều đó với dữ liệu đầu vào và đầu ra mong đợi với các truy vấn, bạn đã viết? – shahkalpesh
DATEDIFF trong vài phút sau đó chia số nguyên cho 60? –