繁体   English   中英

使用SQL按日期范围和日期范围搜索记录是否为空

[英]Search records by date range & if date range is empty using SQL

我已经使用C#,asp.net创建了搜索网络表单。 我有搜索参数,例如客户名称,日期范围(从&到)。 我已经写了查询以通过上述参数进行搜索。 它的工作正常,但是当我仅按客户名称而不按日期范围进行搜索时,则不会显示记录。 请给我解决方案,以与“% 条件中的“%”运算符相同的空白日期范围给出条件。

假设您要将以下3个参数传递给SP

@Input VARCHAR(100)
@FromDate DATETIME
@ToDate DATETIME

在这种情况下,当您只想根据客户名称进行搜索时,请为FromDateToDate传递NULL值,然后按如下所示编写查询。

SELECT COL1,COL2,COL3....  
FROM TABLET1 T1
WHERE T1.Name LIKE '%' + @Input  + '%'
AND (T1.FROMDATE >= @FromDate OR @FromDate IS NULL)
AND (T1.TODATE <= @ToDate OR @ToDate IS NULL)

情况1 :UI中未指定FromDate,因此@FromDate将为NULL ,条件AND (T1.FROMDATE >= @FromDate OR **@FromDate IS NULL**)将返回true。

情况2 :UI中未指定ToDate,因此@ToDate将为NULL ,条件ND (T1.TODATE <= @ToDate OR @ToDate IS NULL)将返回true。

情况3:在这种情况下未指定从日期和到日期,以上条件(情况1和情况2)均成立,查询将基于T1.Name LIKE '%' + @Input + '%'返回所有匹配的记录。 T1.Name LIKE '%' + @Input + '%'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM