下拉列表显示Getdate()+ 2年和 - 2年

时间:2014-08-05 16:28:58

标签: c# sql sql-server

我在互联网上搜索但未找到答案,不确定这是否是一个愚蠢的问题,但这里有了

我想创建一个下拉列表,自动在列表中添加多年,而不添加它们。有2个optioins来配置数据源并创建查询或在C#

中对其进行编码

我只是想知道是否有可能显示当前年份+ 2年和 - 2年,纯粹使用getdate()。例如,我希望2012年,2013年,2014年,2015年,2016年展示,

以下代码仅显示2012年,但我希望其他年份也能显示

select Year(dateadd(year, -2, getdate())) 

我不确定我是否采取了正确的方式,但我希望下拉列表能够自动显示年份。

如果您需要进一步的信息,请告诉我,我在c#上的表现并不是很好,如果您打算对我的问题进行评分,至少让我知道为什么......

2 个答案:

答案 0 :(得分:1)

您可以使用计数表:

SELECT TOP 5 --five years
IDENTITY(INT,-2,1) AS N
INTO #tally
FROM Master.dbo.SysColumns

SELECT YEAR(DATEADD(YEAR,N,GETDATE()))
FROM #tally

DROP TABLE #tally

答案 1 :(得分:1)

在您的方案中,您希望绑定C#代码中的值,这比查询SQL Server要快得多。

例如,

int start = DateTime.Now.Year - 2;
int end = start + 5;
for (int i = start; i < end; i++) {
    DropDownList1.Items.Add(new ListItem(i.ToString()));
}