我在博客上工作,想在東部時區顯示我的帖子。我認爲存儲一切UTC將是正確的方式。這雖然產生了一些挑戰:將日期時間存儲在數據庫中?
我必須將所有時間從UTC轉換到東部。這不是一個大問題,但增加了很多代碼。
與「大款」是我用一個短日期時間通過傳遞查詢,ALA博客引用的帖子。問題是沒有辦法將短日期時間轉換爲正確的UTC日期,因爲我缺少發佈的時間信息。
嗯,任何問題只是存儲在東部時間的所有日期?這肯定會使應用程序的其他部分更加容易,但如果我需要更改時區,則所有內容都將存儲錯誤。
更新
@喬恩,非常看重自己的專業知識,但我已經決定存儲UTC時間在數據庫中是錯誤的。不過,你也許能夠說服我!
所以,讓我給你完整的骨感。我將所有時間轉換爲UTC,這需要在代碼的聲明部分中添加更多「語法」。
什麼我編碼是一個博客,所以我有兩條路線,一個列表路線和細節的路線。細節路線採用短日期,並且假定組合的帖子的名稱是唯一的。這就是它崩潰的原因。我通過查詢中的短路線。
根據一天中的時間,我們能夠圍住,使其爲29或30這樣的短日期必須是正確的,因爲我沒有在查詢足夠的信息來確定如何將東部時間轉換回世界標準時間。
我被存儲DatePosted「短日期」的所有時間@上午12點爲SQL宗旨和FirstModified長日期的時間。所以,我說,好的沒問題,我只會將短日期存儲在東部,然後將長日期轉換爲東部。不行,因爲我無法使這些查詢工作。
所以,我決定對這一切都做錯了。日期應該始終保存在東部時間(我想使用的時間)。然後,如果用戶想要更改時區(不是要求),我們只需瀏覽所有條目並更改它們。
也許,我在想這個毛病,但我的情況下,將永遠只能是用於東部時區,所以這是浪費時間,無論哪種方式。
期待對此有任何意見!
的關鍵問題:
- 我傳遞在查詢中的短日期。如果這個短日期是UTC,那麼查詢中的日期可能會被忽略1.如果我將短日期作爲東部通過,那麼我將需要一個linq-to-sql語法,它可以轉換爲SQL,以便我可以比較日期不同時區的時間。再次
感謝所有幫助!
@Jon我在考慮使用短日期時間的情況。 5/23/2010。這可能是23或24,並且不能轉換 - 取決於時間。即,日期可能是錯誤的。我可以在源頭處理這個問題。 – 2010-05-25 18:23:38
@Curtis White:要麼有歧義 - 在這種情況下,您需要以任何方式處理它 - 或者沒有,並且您可以補償代碼中的時區。 – 2010-05-25 18:35:00
@Jon感謝您的幫助。我更詳細地更新了這個問題,隨處轉換所有日期/時間的問題最終我最終需要SQL支持這些問題,這在SQL 2005中如何實現其中一些並不明顯。所以它變得一團糟。我決定最好將它存儲在元數據中,然後在需要切換時轉換所有時間,這也可以避免大多數轉換。 – 2010-06-01 00:52:05