簡體   English   中英

在 SQL Server 2005 數據庫中存儲 ac# DateTimeOffset 值

[英]Storing a c# DateTimeOffset value in a SQL Server 2005 database

我想將 aac# DateTimeOffset 值存儲在 SQL Server 2005 數據庫中。

Sql 2008 將此作為內置類型,但 SQL Server 2005 沒有。

DateTimeOffset 結構有一個 DateTime 值,我將其存儲為 DateTime,一個 Offset 屬性(TimeSpan 類型)。 由於這是相對於 UTC 的時區,大概它通常是整數小時或半小時。

關於如何最好地將其存儲在 SQL Server 2005 數據庫中的建議?

假設偏移量是幾個小時或半小時並不是一個好主意 - 周圍肯定有四分之一小時的時區。

使用毫秒作為偏移量可能是最靈活的,但我認為分鍾更容易閱讀。 如果您要查看數據庫中的“原始”數據,那么理解值 60 = 1 小時比 3600000 更容易。我無法想象您真的需要幾分鍾作為偏移量。

將所有 DateTimeOffsets 標准化為一個公共偏移量,最好是 UTC。 然后像往常一樣存儲 DateTime 。 提取后恢復偏移量,它應該是一個常數。 這不會保留原始偏移量,但無論如何偏移量對時區是不明確的。

如果您確實需要知道日期/時間原點,那么您需要存儲一些時區信息。 這是因為簡單的偏移量不能明確表示時間的起源。 請參閱(有些令人困惑)關於在 DateTime、DateTimeOffset 和 TimeZoneInfo 之間進行選擇的MSDN 文檔。

將日期時間存儲為日期時間,將偏移量存儲為毫秒(bigint)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM