データベースには project_start と project_end の 2 つの列があり、レポート (ASP でコード化) を介して 2 つのフィールド (両方ともオプション) を渡しています。
以下の疑似コードは、私が現在持っているものです。
(project_start <= search_start AND project_end <= search_start)
と
(プロジェクト開始 <= 検索終了 AND プロジェクト終了 >= 検索終了)
ただし、上記で取り上げられていないのは、開始日より前に開始され、開始日より後に終了するプロジェクト、開始日より後に開始され、終了日より後に終了するプロジェクト、および開始日より前に開始されて終了するプロジェクトです。終了日以降:S
以下は私のコードです:
if (Request.QueryString["DateFrom"] != null && Request.QueryString["DateFrom"] != "")
{
DateTime dateFromFilter;
dateFromFilter = DateTime.Parse(Request.QueryString["DateFrom"]);
Q = from qua in qTable
where qua.Start_Date.Date <= dateFromFilter.Date
&& qua.End_Date.Date >= dateFromFilter.Date
select qua;
}
//filter to date
if (Request.QueryString["DateTo"] != null && Request.QueryString["DateTo"] != "")
{
DateTime dateToFilter;
dateToFilter = DateTime.Parse(Request.QueryString["DateTo"]);
Q= from qua in qTable
where qua.Start_Date.Date <= dateToFilter.Date
&& qua.End_Date.Date >= dateToFilter.Date
select qua;
}