LINQ中datetime值的时间部分

时间:2010-09-08 12:52:45

标签: winforms linq .net-3.5

我有一个类型为DateTime的字段。

在插入记录时,我也会在现场提供时间。

使用LINQ读取该字段时,它将返回正确的日期,但时间值具有默认值12:00:00 AM

在数据库中,我有每个记录的日期和时间值是正确的。问题是当使用LINQ读取/数据绑定时,时间会更改为默认值。

dataGridView1.DataSource = IQueriableObject.Select(q => new 
         {AppointmentTime = q.AppointmentTime.Value.Date.TimeOfDay}) ;

有什么解决方案来提取时间部分?

1 个答案:

答案 0 :(得分:6)

这就是伤害你的事情

AppointmentTime = q.AppointmentTime.Value.Date.TimeOfDay

执行q.AppointmentTime.Value.Date时,它只获取值的日期部分,默认情况下,TimeOfDay上的Date属性为凌晨12:00:00。

相反,您应该执行q.AppointmentTime.Value.TimeOfDay(这仅在值为DateTime类型时才有效。)