當前時間後,你的T-SQL大師:T-SQL - 查詢記錄之前,並在同一份聲明中
我有以下表格:
ID Arrival
1 06:16:00
2 06:17:00
3 07:19:00
4 08:21:00
5 10:22:00
6 13:21:00
7 20:22:00
說的時間是08:00目前AM和我想在最近的時間之前和之後選擇2條記錄。結果應返回ID爲2,3,4,5和6的記錄。
在記錄ID = 4前後獲取記錄很簡單,但到目前爲止,我無法弄清楚如何將完整集作爲部分返回相同的查詢。我有這兩條select語句:
SELECT TOP(2) * FROM Schedules
where (datepart(hour, Arrival) - datepart(hour, getdate()))*60 + datepart(minute, Arrival) - datepart(minute, getdate()) < 0
order by (datepart(hour, Arrival) - datepart(hour, getdate()))*60 + datepart(minute, Arrival) - datepart(minute, getdate())
SELECT TOP(2) * FROM Schedules
where (datepart(hour, Arrival) - datepart(hour, getdate()))*60 + datepart(minute, Arrival) - datepart(minute, getdate()) >= 0
order by (datepart(hour, Arrival) - datepart(hour, getdate()))*60 + datepart(minute, Arrival) - datepart(minute, getdate()) asc
哪些返回前後的記錄。我試圖在兩個語句上使用聯合,但這需要刪除第一個子句,這會使我的查詢條件失效。
任何想法將有所幫助,謝謝。
哇,這個答案。永遠不會想到這個給定的時間限制。再次感謝您的鏈接。 – 2012-02-02 00:35:01