[英]How to concatenate multiple columns into single value to display in a dropdownlist?
我有一个日期字段,我填充下拉列表。 日期字段就像这个2012-05-01 00:00:00
,我需要下拉列表看起来像这个5/2012
。 但是为了把事情搞得一团糟,我需要把日期分开,然后再把它重新组合起来。
具体来说,我需要找到所有“不同”的月份和所有“不同”年份,但我只想找到不同的年份,如果有一个月份的日期字段,反之亦然。
所以我有以下数据
表: 预算
id Item ItemDate
1 A 5/12/2012
2 B 5/14/2012
3 C 4/5/2012
4 D 4/7/2012
5 E 7/15/2011
所以我希望我的下拉列表仅显示以下内容:
5/2012
4/2012
7/2011
我试过用
SELECT DISTINCT datepart(Month, ItemDate) + ' ' + datepart(year, ItemDate) As ddlList
FROM Budget
但这增加了一年中的月份(5 + 2012 = 2017)。
然后我的asp
<asp:dropdownlist id="ddl1" runat="server" datasourceID="sqldatasrc" DataTextField="ddlList"></dropdownlist>
有任何想法吗? 我不确定我是否正确地走这条路。
如果我没记错的话,我相信您可以使用DropDownList控件上可用的属性DataTextFormatString
来格式化boundfield值。 您必须将属性设置为值{0:M/yyyy}
。 请确保该物业可用。 我在MSDN中找不到它。
我只能找到ListControl.DataTextFormatString属性
在连接这些值之前,必须将datetime字段值的MONTH
和YEAR
部分转换为VARCHAR
或字符串数据类型。
SELECT
DISTINCT CAST(DATEPART(MONTH, ItemDate) AS VARCHAR) + '/' +
CAST(DATEPART(YEAR, ItemDate) AS VARCHAR) AS ddlList
FROM dbo.Budget
SELECT
DISTINCT CAST(MONTH(ItemDate) AS VARCHAR) + '/' +
CAST(YEAR(ItemDate) AS VARCHAR) AS ddlList
FROM dbo.Budget;
CREATE TABLE dbo.Budget
(
Id INT NOT NULL
, Item VARCHAR(10) NOT NULL
, ItemDate DATETIME NOT NULL
)
INSERT INTO dbo.Budget (Id, Item, ItemDate) VALUES
(1, 'A', '05/12/2012'),
(2, 'B', '05/14/2012'),
(3, 'C', '04/05/2012'),
(4, 'D', '04/07/2012'),
(5, 'E', '07/15/2012');
DDLLIST
-------
4/2012
5/2012
7/2012
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.