2011-05-19 77 views
1

我正在開發一個項目,我需要跟蹤時間,比如「2:15 PM」沒有日期。我正在使用Castle ActiveRecord。有沒有一種方法可以使用城堡屬性指定我希望我的字段在SQL Server 2008中成爲時間數據類型?如果是這樣,我會選擇什麼樣的.NET類型?約會時間?Castle ActiveRecord - 我可以使用SQL Server 2008的「時間」數據類型嗎?

另外,我可能需要在這些時間附加時區。使用Castle ActiveRecord和SQL Server 2008做這件事的最好方法是什麼?

回答

1

根據MSDN docs,時間數據類型對應於TimeSpan.net類型,並且NHibernate type是「TimeAsTimeSpan」。在ActiveRecord中,您可以使用ColumnType屬性來定義它,請參見this example

如果您想要包含時區,建議使用DateTimeOffset。我不知道TimeSpan中的時區有何意義...或者將時區存儲在單獨的字段中,並自己完成轉換...

+0

我可能會將時區保留在單獨的字段中,只是以基於每個時區的.NET名稱的varchar存儲。但是就時間本身而言,我嘗試過TimeSpan,但以這種方式存儲對我來說沒有多大意義,因爲TimeSpan是圍繞時間長度而非時鐘時間設計的。 – 2011-06-02 12:35:54

+0

經過多次實驗後,我確實決定使用'TimeSpan'(轉換爲'time'數據類型)。 「TimeSpan」和時間顯示(如「2:00 PM」)之間的主要連接是來回轉換。但是,如果我首先在'TimeSpan'字符串上調用'DateTime.Parse',然後使用「t」格式,它似乎可以正常工作。 – 2011-07-11 19:57:52

相關問題