Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将两个输入日期与SQL Server表中的另外两个日期进行比较_C#_Mysql_Sql_Asp.net - Fatal编程技术网

C# 将两个输入日期与SQL Server表中的另外两个日期进行比较

C# 将两个输入日期与SQL Server表中的另外两个日期进行比较,c#,mysql,sql,asp.net,C#,Mysql,Sql,Asp.net,我想用两个日期过滤两个日期之间的记录From_DATE&to_DATEinput@frm_dt&@to_dt,如果我给两个dates@frm_dt&@to_dt作为两个输入,我想过滤记录,这取决于起始日期和截止日期之间的可用日期。 我在那种情况下已经打了一个多星期了。 我的英语交际能力有点差。请帮助我 FROM_DATE TO_DATE 2017-01-02 . 2017-06-30 . 2017-01-02 . 2017-09-30 . 2017-01-02 .

我想用两个日期过滤两个日期之间的记录From_DATE&to_DATEinput@frm_dt&@to_dt,如果我给两个dates@frm_dt&@to_dt作为两个输入,我想过滤记录,这取决于起始日期和截止日期之间的可用日期。 我在那种情况下已经打了一个多星期了。 我的英语交际能力有点差。请帮助我

FROM_DATE        TO_DATE
2017-01-02 .    2017-06-30 .
2017-01-02 .    2017-09-30 .
2017-01-02 .    2017-12-31 .
2017-01-02 .    2017-10-31 .
2017-01-02 .    2017-11-30 .
2017-01-02 .    2017-10-31 .
2017-01-02 .    2017-09-29 .
2017-01-02 .    2017-12-31 .
2017-01-02 .    2017-08-31 .
2017-01-02 .    2017-11-30 .
2017-01-02 .    2017-10-31 .
2017-01-02 .    2017-10-30 .
2017-01-02 .    2017-09-30 .
2017-01-02 .    2017-09-30 .
如果我将@frm_dt指定为2017-01-01,将@frm_dt指定为2017-06-30,则应返回所有记录,因为这两个日期介于起始日期和结束日期之间。 同样,如果我将@frm_dt定为2017-10-31,将@frm_dt定为2017-12-25,则其应仅在日期以下返回

FROM_DATE        TO_DATE
2017-01-02 .    2017-12-31 .
2017-01-02 .    2017-10-31 .
2017-01-02 .    2017-11-30 .
2017-01-02 .    2017-10-31 .
2017-01-02 .    2017-12-31 .
2017-01-02 .    2017-11-30 .
2017-01-02 .    2017-10-31 .

如果我理解正确,您必须决定是否需要:a所有与两个输入日期重叠的记录,或b所有包含在两个输入日期中的记录。根据您的决定,您应设置以下条件:

a 其中yourTable.FromDate=@DATE\u FROM

b 其中yourTable.FromDate>=@DATE\u FROM和yourTable.ToDate您可以查看!在这里 我想您可以在中间和中间进行尝试。

只要在数据库中执行此查询,您就会得到输出


请使用此条件:

WHERE CAST(FROM_DATE AS DATETIME) >= CAST(@frm_dt AS DATETIME) AND
CAST(TO_DATE AS DATETIME) <= CAST(@to_dt AS DATETIME)
WHERE CONVERT(NVARCHAR(10), FROM_DATE, 121) >= CONVERT(NVARCHAR(10), @frm_dt, 121) AND
CONVERT(NVARCHAR(10), TO_DATE, 121) <= CONVERT(NVARCHAR(10), @to_dt, 121)
或者,您可以使用以下条件:

WHERE CAST(FROM_DATE AS DATETIME) >= CAST(@frm_dt AS DATETIME) AND
CAST(TO_DATE AS DATETIME) <= CAST(@to_dt AS DATETIME)
WHERE CONVERT(NVARCHAR(10), FROM_DATE, 121) >= CONVERT(NVARCHAR(10), @frm_dt, 121) AND
CONVERT(NVARCHAR(10), TO_DATE, 121) <= CONVERT(NVARCHAR(10), @to_dt, 121)