繁体   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