我需要从SQL表中将MAX(timestamp)值检索到一个字符串变量中,但无法弄清楚该怎么做。
因此,如果我的表/实体是这样设置的:
**DEPARTMENTS**
Department varchar(10) PK
LastUpdated timestamp
Linq查询是什么样的?我尝试了几次迭代,但始终会出错。
编辑:这是我尝试过的一个例子
var result = (from d in _context.LOG_Departments
select d.LastUpdated).Max().SingleOrDefault();
错误:“无法将类型'byte'隐式转换为'string'
编辑解决方案:
public string MaxDepartment()
{
CPLinkEntities _context = new CPLinkEntities();
var results = _context.LOG_Departments.Max(t => t.LastUpdated);
string hex = BitConverter.ToString(results);
hex = hex.Replace("-", "");
return hex;
}
最佳答案
时间戳记不是日期时间的东西:
http://technet.microsoft.com/en-us/library/ms182776.aspx
是公开自动生成的唯一二进制数据的数据类型
数据库中的数字。行版本通常用作一种机制
用于版本标记表行。存储大小为8个字节。的
rowversion数据类型只是一个递增的数字,而不是
保存日期或时间。要记录日期或时间,请使用datetime2
数据类型。
然后,您可以使用
long timeStampLong = BitConverter.ToInt64(value, 0);
获得长回音(如果需要,可以将其转换为字符串)。