如何编写LINQ查询以获取两个时间戳之间的记录?
我有fromdate
,hour
,time
的3个文本框以及todate
,hour
,time
的另外3个文本框。
以下代码会导致错误记录。如何获得日期,小时,分钟的记录?
int Fromhours = FHrs;
int Tohours = ToHrs;
int From_min = FromMin;
int To_min = ToMin;
var items = Pirs.Where(a => !a.dataFrame.EndsWith("AAAAAAAAAAA=")
&& (fromDate == null ||
fromDate.Value.Date <= TimeZoneInfo.ConvertTimeFromUtc(Convert.ToDateTime(a.timestamp),
TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")).Date)
&& ((toDate == null ||
toDate.Value.Date >= TimeZoneInfo.ConvertTimeFromUtc(Convert.ToDateTime(a.timestamp),
TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")).Date)
&& fromDate == null ||
TimeZoneInfo.ConvertTimeFromUtc(Convert.ToDateTime(a.timestamp),
TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")).Hour >= Fromhours
&& fromDate == null ||
TimeZoneInfo.ConvertTimeFromUtc(Convert.ToDateTime(a.timestamp),
TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")).Hour <= Tohours))
答案 0 :(得分:1)
理解查询逻辑非常困难。
为什么选择三个不同的文本框来收集日期,小时,分钟。你可以简单地使用一个文本框来存储起始日期时间,另一个文本框用于存储结束日期时间。所以,不需要指定这么多的文本框用于查找特定日期时间之间的记录。
您可以根据需要使用不同的dateTime函数来执行DateTime转换。如果要从此Datetime字符串中拆分Date,hour,min,则只需使用C#DateTime帮助函数。