早上好,SQL日期時間自動化
我在試圖刪除一些手工錄入的在檢索已通過我們的接口傳輸結果的每週成交量幾個查詢的過程很。即日期時間函數和幾個case函數。我想先處理日期時間,因爲只有在添加新客戶時,不需要每週更新案例陳述。
在過去,我們一直在手動編輯數據以選擇最近7天的數據。
例子:
WHERE (MessageReceivedDateTime >= '12/23/15 05:00'
AND MessageReceivedDateTime < '12/28/15 05:00')
我可以使用下面的建議代碼來檢索過去的7天值得我們的數據庫中的數據,似乎有一些價值失蹤的日子之一。我認爲這是因爲我沒有查詢中的時間偏移量。
建議:更新這個目標
(MessageReceivedDateTime between DateAdd(DD,-7,GETDATE()) and GETDATE())
部分是爲了確保我們並不需要每週手動修改的日期/時間。我做了Google搜索並搜索了論壇,但沒有看到任何與此問題相關的內容。任何額外的幫助/解釋將不勝感激。
如果我錯誤地選擇了tSQL,我的SQL培訓全部在工作中,並且我們有Oracle和Microsoft SQL Server Management Studio,我還想在Management Studio中運行上述查詢並相信他們是tSQL。
----編輯提供最終的解決方案----
DECLARE @StartTime DATETIME = (DATEADD(Day, 0, DATEDIFF(Day, 0, GetDate())-7));
DECLARE @EndTime DATETIME = DATEADD(Day, 0, DATEDIFF(Day, 0, GetDate()));
SET @StartTime = DATEADD(hh,(-dbo.fn_GetUTCOffset(@StartTime)),@StartTime);
SET @EndTime = DATEADD(hh,(-dbo.fn_GetUTCOffset(@EndTime)),@EndTime);
WHERE MessageReceivedDateTime >= @StartTime
AND MessageReceivedDateTime < @EndTime
在我的特殊情況下,我擔心在最後一天的唯一的事情是確保考慮到我的UTC偏移。我使用我們設置的-dob.fn處理了這個問題。它將根據一年中的時間添加5或4個。
哪些值似乎缺少 – Paparazzi
飛盤,我比較了兩個查詢被使用,並且使用DateAdd之間留出約5000結果第一查詢的當天。我預計這些數字會更接近現貨。雖然我認爲Steven對使用日期時間的Getdate函數的解釋是減去7天,但將其作爲清晨,並且我希望檢索的是如果兩個查詢的工作類似,則需要比較整個天的值。 –
但是你甚至沒有用> 12/23/15 05:00 – Paparazzi