我想開發一個模型對象來保存一個Sql Server行,我完全理解如何做到這一點,除了T-Sql/SqlServer時間戳。該表定義爲:T-Sql中的時間戳在C#中意味着什麼?
CREATE TABLE activity (
activity_id int
, ip_address varchar(39)
, user_id varchar(255)
, message_text
, dt timestamp
)
當我解決一個錶行到我的對象,一個int或字符串我希望做一些事情,如:
ActivityID = (int)dataReader["activity_id"];
IPAddress = (string)dataReader["ip_address"];
可是我該怎麼辦時間戳列?沒有「時間戳」數據類型,我可以在任何地方找到。我知道Sql Server將時間戳存儲爲8字節的二進制文件,但這通常與.NET中的等效內容相同?
編輯補充:有一點額外的信息......這是從我們的大型機上的DB2表返回的行,通過Sql Server視圖。 「Rowversion」不是一個選項,而DB2將該列作爲時間戳遞交。如果時間戳和rowversion是相同的,也許我可以把它當作一個,但除此之外我被卡在時間戳中。
再次編輯添加:這個項目將驅使我堅果。至少,這將是一次短暫的旅行。無論如何,是@JoelC這是一個Sql Server視圖到大型機上的DB2數據庫。我終於能夠追查到我們的一位DBA,他們蔑視地解釋說,「當然」的DB2 TIMESTAMP遇到了Sql Server視圖作爲日期時間。從他的語氣我猜,只有小菜才知道這一點。這就是爲什麼他在實際視圖中將它命名爲「日期時間」,杜! (在我的示例中,我給了它一個不同的名稱,以便不會觸發對命名約定的評論 - 實際的數據模型圖表示它是TIMESTAMP並將其命名爲時間戳)。因此,在這種情況下,顯然必須將其投射到DateTime。我想我可能會開始考慮成爲DBA,這樣我也可以讓程序員瘋狂。對不起,如果我誤導了這個問題的任何響應者 - 這是無意的,因爲我實際上期待時間戳是一個時間戳。傻我。特別要感謝微軟在與日期和時間無關時將字節數組數據類型命名爲「時間戳」。我不知道哪個回答標記爲答案。嘆。
@邁克爾,這不是問什麼時候OP從數據庫
檢索時。我會用日期時間,BTW – 2011-06-13 18:49:45
什麼'DateTime'對象,它可以把你的時間戳。 – Rahul 2011-06-13 18:50:19
還看到:http://stackoverflow.com/questions/425389/c-equivalent-of-sql-server-2005-datatypes – 2011-06-13 18:50:44