【发布时间】:2021-12-08 23:34:24
【问题描述】:
我有 2 个参数。一个是 defaultFromD,另一个是 defaultFromD。如果我为此 x.CreatedOn >= defaultFromD && x.CreatedOn <= defaultToD 提供 2 个日期范围@
x.CreatedOn >= '2021-10-17' && x.CreatedOn
它的工作。但如果我为这两个参数提供相同的日期,则此条件不起作用。
x.CreatedOn >= '2021-10-20' && x.CreatedOn
我想知道如何在一个条件下通过这 2 个逻辑。请帮我解决这个问题。
谢谢...
public ResponseDTO<IQueryable<LabRequestForLabOrderDTO>> GetApprovedLabRequestsQueryable(DateTime defaultFromD, DateTime defaultToD)
{
var resp = ResponseBuilder.Build<IQueryable<LabRequestForLabOrderDTO>>();
var reqs = this.labRequestRepository.GetAllActive().Where(x => x.IsActive && x.TrxStatus == 1 && x.InvoiceStatus == "Approved"
&& x.CreatedOn >= defaultFromD && x.CreatedOn <= defaultToD)
.Select(x => new LabRequestForLabOrderDTO
{
Clinic = x.Clinic,
LabOrderCreated = x.LabOrderCreated,
InvoiceStatus = x.InvoiceStatus,
CreatedOn = x.CreatedOn
}).AsQueryable();
resp.AddSuccessResult(reqs);
return resp;
}
【问题讨论】:
-
将代码发布为文本并说明您要检索的内容。如果您查询数据库,则发布表架构,尤其是字段类型。
x.CreatedOn >= '2021-10-20' && x.CreatedOn <= '2021-10-20'等价于x.CreatedOn = '2021-10-20'并且可能不匹配表中的任何记录。如果CreatedOn是date字段,它将匹配具有该日期的任何行。如果它是datetime、datetime2等,它将匹配完全2021-10-20 00:00:00.0000的行 -
另一方面,如果您尝试过滤内存列表,则查询只会匹配与该值完全匹配的项目,精确到纳秒
-
问题不清楚。
-
在客户端有日期范围选择器。如果我选择相同的日期来获取记录。数据还没来。但如果我选择不同的范围,它的工作。我想知道如果我给出一个日期范围怎么办
-
@ChathurangaRanasingha 将代码发布为文本,而不是难以阅读的图像。图像不能被复制、编译和调试。问题是由字段类型引起的,而不是由客户端引起的。
CreatedOn是什么?如果是表格列,它的类型是什么?如果它有时间组件,则查询必须更改为x.CreatedOn >=date.Date && x.CreatedOn < date.Date.AddDays(1)
标签: c# asp.net .net asp.net-mvc model-view-controller