在sql中,存储过程输出将作为仅具有日期的列。但是当它进入mvc项目中的c#代码时,该表将自动转换为日期时间。 我无法理解它是如何可能的。 从sp它作为日期,但在数据集中它转换为日期时间。 如何只在c#代码中获取日期
答案 0 :(得分:1)
C#中没有Date
的数据类型。
而是使用DateTime
并控制格式。
所以要显示日期只使用像dd/MM/yyyy
在您的情况下,由于数据库仅提供日期,您的.net对象将包含始终设置为"00:00:00"
的日期的时间部分,该日期不会影响属性的值,您可以使用上述格式隐藏它/ p>
答案 1 :(得分:0)
这是你可以转换成字符串类型
的方法string s = dataset1.Tables[0].Rows[rownumber]["datecolumn"].ToString().Replace("00:00:00","");
<强>更新强>
您可以添加新列以Date-only
格式
dataset1.Tables[0].Columns.Add("Date");
for(int i=0;i<dataTable1.Rows.Count;i++)
{
dataset1.Tables[0].Rows[i]["Date"] = dataset1.Tables[0].Rows[rownumber]["datecolumn"].ToString().Replace("00:00:00","");
}
现在,您可以隐藏datecolumn
列并在前端显示Date
列
如果您想根据日期对表格进行排序,
DataTable dt=dataset1.Tables[0].Copy();
DataView dv=new DataView(dt);
dv.Sort = "datecolumn asc";
dt = dv.ToTable();
dataset1.Tables.Clear();
dataset1.Tables.Add(dt);
答案 2 :(得分:0)
您可以将类型转换为varchar,因此C#不会附加时间部分
CONVERT(varchar,COLUMN_NAME,105)
105或您想要的格式,或默认情况下不指定