SQL到Linq Datetime

时间:2014-02-20 14:42:12

标签: c# linq entity-framework

 var oList = from oCI in db.clients
             where oCI.ClientRef == 20
             select new
             {
                 id = oCI.id,
                 dateReceived = oCI.dateReceived,
             };

访问dateReceived时,我得到的值为

/Date(1342479600000)/ 

而不是

2012-07-17 00:00:00.000

存储在数据库中

任何人都可以帮忙吗?

班级

 public partial class client
    {
        public int id { get; set; }
        public long ClientRef { get; set; }
        public DateTime dateReceived { get; set; }

    }

4 个答案:

答案 0 :(得分:1)

请尝试使用oCI.dateReceived.Value.Date。

答案 1 :(得分:0)

以下内容可能有所帮助:

oCI.dateReceived.ToLongDateString()

System.DateTime方法(LINQ to SQL) http://msdn.microsoft.com/en-us/library/vstudio/bb882657(v=vs.100).aspx http://msdn.microsoft.com/en-us/library/vstudio/system.datetime.tolongtimestring(v=vs.100).aspx

答案 2 :(得分:0)

您的问题不是从数据库获取日期,您的问题就是如何观看结果。

将日期序列化为json字符串时,获取下一个字符串

/Date(1342479600000)/ 

正确的序列化日期。从这个Date对象获取,你可以使用像这样的正则表达式

var serializedDate = "/Date(1342479600000)/";
var date = new Date(parseInt(serializedDate.match(/Date\((\d+)\)/)[1],10));

注意:我认为更好的是在调试器中观察值,或者发送日期的客户端字符串表示,或者可能是unixtimestamp。

答案 3 :(得分:0)

 var oList = (from oCI in db.clients
             where oCI.ClientRef == 20
             select new
             {
                 id = oCI.id,
                 dateReceived = oCI.dateReceived,
             }).ToList().Select(o => new
                        {
                            id = o.id,
                            status = o.dateReceived.ToString()
});

上面的返回日期为字符串,它有效!!!