我从数据库中获取一些数据,这些数据在年月和年份中有日期分解,原因是我想要连接该列并添加一个新列。
我正在做的是添加数据
DataColumn newColumn;
newColumn = new DataColumn("CompositeDate");
newColumn.Expression = "Day + Month + Year" ;
scaleResponseData.Columns.Add(newColumn);
数据表中的数据是这样的
year | Month | Day
2009 10 2
2010 11 3
我目前的代码在做什么
year | Month | Day | composite_Date
2009 10 2 2021
2010 11 3 2024
但结果应该是一些事情
year | Month | Day | composite_Date
2009 10 02 20091002
2010 11 03 20101103
我有不同的组合,但没有任何工作
答案 0 :(得分:3)
试试这个:
newColumn.Expression = "Convert(Day , 'System.String') + Convert(Month , 'System.String') + Convert(Year, 'System.String')";
答案 1 :(得分:1)
这是因为您的列是数字,添加三个数字将产生一个新数字。
尝试通过在列之间包含空文本来强制表达式生成字符串:
newColumn.Expression = "Day + '' + Month + '' + Year" ;
答案 2 :(得分:1)
Yoo也可以将其转换为“真正的”DateTime类型,就像这样。
newColumn.Expression = "Convert(Year + '/' + Month + '/' + Day, 'System.DateTime')";
答案 3 :(得分:0)
如果您在数据库中有年份,月份和日期作为整数,则以数字方式添加,例如: Year = 2009,month = 10 and day = 2 == 2009 + 10 + 2 = 2021,这是您当前的composite_date。
你应该试试
年* 10000 +月* 100 +天获得您想要的结果=> newColumn.Expression = "Day + Month * 100 + Year * 10000" ;