0

我在檢索字段CreatedDate時遇到數據庫問題,結果有5小時的差異。在開始我使用DATEADD功能。SSRS與時區工作

DATEADD(HOUR, 5, IncidentDimvw.CreatedDate) AS CreatedDate 

標識 - DataBaseCreatedDate - EditedCreatedDate

IR21 - 2013年2月2日下午9時04分56秒 - 2013年3月2日上午02時04分56秒

IR67 - 03/02/2013 06:02:02 AM - 03/02/2013 11:02:02 AM

IR78 - 03/02/2013 09:22:44 PM - 04/02/2013 02:22:44 AM

選擇@StartDate = 03/02/2013和@EndDate = 03/02/2013後運行查詢時

它給了我兩個結果IR21和IR67

EditedCreatedDate實際上是一部開拓創新的事件創建的日期和時間

但是,當我在這裏使用的日期範圍過濾器我面對的定時像一些問題;如果我選擇@startdate = 06/20/2013(06/20/2013 00:00:00 AM實際上這次回升)

應該有一些時區問題,請在這個問題上幫助我,因爲我沒有想法如何解決它。如果我應用(@timezone)過濾器,但不幸的是,在哪裏應用我不知道的過濾器,可能會有所幫助。

1

+1

您的客戶發送的日期將被轉換爲UTC或您的服務器的時間。從那裏你將需要實現轉換過程。如果您已經具有UTCTimeToLocalTime(timeZone)或LocalTimeToUTCTime(timeZone)等本地化功能,那麼我會建議將該程序集添加到您的報告中。如果沒有,你將不得不手動添加SQL中的TZ計算:(如果沒有經過驗證的動態日光節約轉換方法,這會變得很麻煩,目前我在美國東部標準時間,計算格林威治標準時間-4。並且時間將變爲GMT-5 –

+0

感謝Lrb, 應該有本地化的功能,因爲SCSM默認報告顯示了事件創建時間的轉換時間,但我不知道如何將該程序集添加到我的報告中。或者你可以給我任何引用鏈接。 – ahsan

+0

當你保存一條記錄時,使用服務器本地時間GETDATE()存儲的CreatedDate?或者是用戶在計算中使用配置的區域設置 - 是否將用戶tz考慮在內的邏輯的CreatedDate中發送? –

回答

0

嗨,我得到了一些在我的問題的方面。 以下步驟添加組件。 1.在設計視圖中,右鍵單擊報表邊框外的設計圖面,然後單擊報表屬性。 2.單擊參考。 3.在添加或刪除程序集中,單擊添加,然後單擊省略號按鈕以瀏覽程序集。

在你的場景中,如果你想添加時區程序集,你可以添加System.Core。有關它的詳細信息,請參閱:

Working with Time Zones in SSRS

希望這有助於。

問候,

穆罕默德·阿赫桑密斯巴