数据集采用日期以及存储过程仅发送日期的时间

时间:2014-12-23 10:03:08

标签: c# asp.net-mvc sql-server-2008

在sql中,存储过程输出将作为仅具有日期的列。但是当它进入mvc项目中的c#代码时,该表将自动转换为日期时间。 我无法理解它是如何可能的。 从sp它作为日期,但在数据集中它转换为日期时间。 如何只在c#代码中获取日期

3 个答案:

答案 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或您想要的格式,或默认情况下不指定