当我更改变量中的日期时,我在查询中显示日期时出现了一些问题,下面是我声明的内容。
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时,它返回我过滤的所有内容的数据。
任何人都可以就解决这个问题的方法提出一些建议我不知道。
答案 0 :(得分:0)
我不知道你的查询是什么不起作用,但基本的isead应该是这样的:
select * from YourTempTable where datepart (yy, DateField) = datepart(yy, @start_date)
当然,这对大表来说不是最佳的,因为它不会使用任何索引。
最好根据您要查找的时间段和上述参考日期构建@DateFrom和@DateTo变量,并相应地进行选择:
select * from YourTempTable where DateField between = @DateFrom and @DateTo