C# 在进行比较之前,在实体框架中将UTC时间更改为本地时间
我有一个应用程序,其中使用实体框架数据库优先方法,并且我必须比较查询中的日期 在与startDate和endDate进行比较之前,我想将TimestampUTC(一个数据库字段)更改为本地时间 是否可以在下面的查询中以某种方式更改x.TimestamdUTCC# 在进行比较之前,在实体框架中将UTC时间更改为本地时间,c#,entity-framework,C#,Entity Framework,我有一个应用程序,其中使用实体框架数据库优先方法,并且我必须比较查询中的日期 在与startDate和endDate进行比较之前,我想将TimestampUTC(一个数据库字段)更改为本地时间 是否可以在下面的查询中以某种方式更改x.TimestamdUTC 使用(var db=newtestentities()) { 整数记录; DateTime startDate=DateTime.Now.AddDays(-90).Date; DateTime endDate=DateTime.Now.Ad
使用(var db=newtestentities())
{
整数记录;
DateTime startDate=DateTime.Now.AddDays(-90).Date;
DateTime endDate=DateTime.Now.AddDays(-1).Date;
numberOfRecords=db.Logs.Where(x=>x.TimestampUTC>=startDate&&x.TimestampUTC您可以使用DateTime.ToLocalTime()
方法返回给定DateTime实例的本地时间表示形式。因此,您的查询如下所示:
numberOfRecords=db.Logs.Where(x=>x.TimestampUTC.ToLocaTime()>=startDate&&x.TimestampUTC x.TimestampUTC>=startDate&&x.TimestampUTC使用DateTime.UtcNow
,因此startDate
和endDate
也是比较的UTC。您不能将本地日期更改为TimestampUTC吗?您不应该将时间x.TimestampUTC
更改为本地时间。您应该更改startDate
和endDate
转换为UTC进行比较。将x.TimestampUTC转换为本地时间将使查询效率低下且非常昂贵。DB服务器甚至可能不在这些列上使用索引。您是否曾在@Simant使用过此功能?