Sql server SQL数据不显示特定日期范围的数据

Sql server SQL数据不显示特定日期范围的数据,sql-server,tsql,date,Sql Server,Tsql,Date,当我更改变量中的日期时,我在查询中显示日期时遇到了一些问题,下面是我声明的内容 declare @record int; declare @start_date date; declare @end_date date; set @record = 2; set @start_date = '2016-03-01'; set @end_date = '2016-03-31'; 我创建的是临时表,它按日期范围填充数据。日期设置如下 - Daily 2016-01-15 - we

当我更改变量中的日期时,我在查询中显示日期时遇到了一些问题,下面是我声明的内容

declare @record int;
declare @start_date date;
declare @end_date date;

set @record = 2;
set @start_date =   '2016-03-01';
set @end_date =     '2016-03-31';
我创建的是临时表,它按日期范围填充数据。日期设置如下

 - Daily 2016-01-15 
- weekly 2016-51 
- Monthly 2016-04 
- Quarterly 2016-01
- Yearly 2016
所以,当我声明上面的日期并按年度过滤时,我应该返回数据,事实上,无论我为年度输入什么日期,我都应该得到结果,但没有显示任何结果

当我声明开始日期=2016-01-01时,它将返回我筛选依据的所有数据


有人能提供一些建议来解决这个问题吗?我不知道。

我不知道你的问题是什么,但基本的isead应该是这样的:

select * from YourTempTable where datepart (yy, DateField) = datepart(yy, @start_date)
当然,这对于大型表来说不是最优的,因为它不会使用任何索引

最好根据您正在查找的期间和上述参考日期构造@DateFrom和@DateTo变量,并相应地进行选择:

select * from YourTempTable where DateField between = @DateFrom and @DateTo

你能显示你的查询的其余部分吗?你如何在你的
where
/
join
或任何你有的过滤选项中使用
Yearly
?如果你没有显示脚本的其余部分,我们如何帮助你?我已经删除了基于tSql标记的mySql标记。请仅使用相关标签。显示查询!现在无法解决