如何将字节数组(SQL 服务器时间戳)转换为日期时间 (C#)
本文关键字:转换 日期 时间 时间戳 SQL 字节 字节数 数组 服务器 | 更新日期: 2023-09-27 18:35:15
如何将字节数组转换为DateTime
?我必须这样做,因为我使用带有属性Timestamp
的属性(名为 CreationDataStamp
)作为实体框架。我用于将字节数组转换为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.IConvertible
。
更新:
我也从这个问题中尝试过这个问题:如何在 C# 中将字节 [] 转换为日期时间?
long longVar = BitConverter.ToInt64(CreationDateStamp, 0);
DateTime dateTimeVar = new DateTime(1980,1,1).AddMilliseconds(longVar);
但我有这个例外:
要添加的值超出范围。
参数名称:值
你可以帮我吗?
SQL 服务器Timestamp
不是DateTime
。它是元组(行)的版本控制列。
- SQL 服务器参考 - 请参阅行版本和旧版本时间戳。
- 实体框架参考 - 使用实体框架处理并发 6.
简而言之,你不能做你想做的事情。
尝试这样的事情:
long longVar = BitConverter.ToInt64(byteValue, 0);
DateTime dateTimeVar = new DateTime(1980,1,1).AddMilliseconds(longVar);
希望有帮助。