簡體   English   中英

如何將字節數組(SQL-server Timestamp)轉換為DateTime(C#)?

[英]How to convert byte array (SQL-server Timestamp) to DateTime (C#)?

如何將字節數組轉換為DateTime 我必須這樣做是因為我使用了一個屬性(名為CreationDataStamp ,其屬性Timestamp用於實體框架。 我用來將字節數組轉換為DateTime的第二個屬性(名為CreationDate

[System.ComponentModel.DataAnnotations.Timestamp]
public byte[] CreationDateStamp { get; set; }

[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public DateTime CreationDate
{
    get
    {
        return Convert.ToDateTime(CreationDateStamp);
    }
}

問題是,我已經 9行此異常:

無法將System.Byte[]類型的對象System.Byte[]轉換為System.IConvertible類型。


更新:

我也嘗試過這個問題: 如何在C#中將byte []轉換為datetime?

long longVar = BitConverter.ToInt64(CreationDateStamp, 0);
DateTime dateTimeVar = new DateTime(1980,1,1).AddMilliseconds(longVar);

但我有這個例外:

要添加的值超出范圍。
參數名稱:value

你能幫助我嗎?

Sql server Timestamp不是DateTime 它是元組(行)的版本控制列。

簡而言之,你無法做你想做的事。

嘗試這樣的事情:

long longVar = BitConverter.ToInt64(byteValue, 0);
DateTime dateTimeVar = new DateTime(1980,1,1).AddMilliseconds(longVar);

希望有所幫助。

暫無
暫無

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

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