我想显示我的参数的月份和年份,供最终用户从下拉列表中选择。
例如,startdate必须是2017年6月,enddate只有getdate()
的月份和年份
这是我写的查询,但它不适合我
declare @start datetime = '6/1/2017'
declare @end datetime = getdate()
select
@start = dateadd(M, @start),
datename(M, @start) + ' ' + datename(Y, @start)
where
@start < @end
答案 0 :(得分:1)
您的代码中存在一些错误:
$scope.userPic.naturalHeight();
$scope.userPic.naturalWidth();
dateadd(MONTH,1, @start)
试试这些代码
A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.
答案 1 :(得分:0)
我认为一个解决方案如下。
创建一个存储过程,如下所示
declare @start DATE = '2011-05-01'
declare @end DATE = getdate()
;with months (date)
AS
(
SELECT @start
UNION ALL
SELECT DATEADD(month,1,date)
from months
where DATEADD(month,1,date)<=@end
)
select Datename(month,date) As Months, Datename(year, date) As Years, CONCAT(Datename(month,date), ' ', Datename(year, date)) As MonthandYear from months
为报表RDL创建参数,对于可用值选项,从Query中选择get值。
从上面的查询中选择创建的数据集,在值字段中选择MonthandYear字段并标记为&#39;开始日期&#39;。
运行报告时,您应该接收输入参数作为开始日期,其中包含日期差异的下拉值以及开始日期和结束日期。
希望这会有所帮助。