我需要从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);


获得长回音(如果需要,可以将其转换为字符串)。

10-07 19:54
查看更多