C# 带时区的where子句
我正在为linq到sql查询编写where子句。假设一个列名是AppointTime,它存储在GMT时区中。我正在编写的查询是动态的,UI允许用户选择今天、昨天、2天前、3、5、10、30、60、90天前的约会集 我有一个十进制的用户时区(即-9.0代表美国太平洋标准时间) 编写where子句的最佳方法是什么,以便希望查看2天前设置的约会的用户出现在查询的结果集中。类似的内容C# 带时区的where子句,c#,linq-to-sql,C#,Linq To Sql,我正在为linq到sql查询编写where子句。假设一个列名是AppointTime,它存储在GMT时区中。我正在编写的查询是动态的,UI允许用户选择今天、昨天、2天前、3、5、10、30、60、90天前的约会集 我有一个十进制的用户时区(即-9.0代表美国太平洋标准时间) 编写where子句的最佳方法是什么,以便希望查看2天前设置的约会的用户出现在查询的结果集中。类似的内容 int days = 2; // set by UI? var upcoming = from appointm
int days = 2; // set by UI?
var upcoming =
from appointment in dc.Appointments
where appointment.AppointTime.AddHours(userTZ) < DateTime.UtcNow.AddDays(days)
&& appointment.AppointTime > DateTime.UtcNow
orderby appointment.AppointTime ascending
select appointment;
int days=2;//由用户界面设置?
var即将到来=
来自华盛顿特区的任命。任命
其中appointment.AppointTime.AddHours(userTZ)DateTime.UtcNow
orderby appointment.AppointTime升序
选择预约;
我承认我不完全清楚你到底想得到什么信息。。。但这应该包含足够的线索来编写所需的查询。记住两件事-
Addx()
日期时间上的函数可以取负值进行减法;未来的时间比过去的时间要长,在比较两个日期时间时
能否为您的表提供架构?该表包含一列AppointSetDateTime,它是设置约会的时间。例如,如何检索3天前设置的所有约会。我有一个十进制数,它被传递给包含用户时区(即userzone=-9.00)的函数。顺便说一句,如果您使用的是LINQ to SQL,那么您应该使用LINQ to SQL标记,而不是LINQ。“linq”指的是所有的linq技术。是的,AddHours是我想要的。是否也有减少小时数的情况,因为还有一种情况是用户选择了在过去x天内未设置的任命。@frenchie啊,当然你不想显示已经通过的任命。让我们添加另一个条件,以排除少于现在的约会时间。(见更新)