C# 日期存储在datatable ado.net中时会转换为日期时间格式

C# 日期存储在datatable ado.net中时会转换为日期时间格式,c#,datetime,dataset,C#,Datetime,Dataset,我编写了只返回日期而不返回日期时间的存储过程,即 当前日期 2013-10-06 因此,当我使用da.fill()方法将此结果存储在dataset中时,在datatable中,它以datetime格式存储,结果为2013-10-06 12:00:00 如何解决此问题?您可以将日期时间字符串格式化为仅显示日期。由于.NET没有仅日期的数据类型,因此必须从DateTime对象中筛选日期。 选择ToSortDateString()方法,如果需要特殊格式,则必须使用ToString()方法,并提供一个格

我编写了只返回日期而不返回日期时间的存储过程,即

当前日期 2013-10-06

因此,当我使用da.fill()方法将此结果存储在dataset中时,在datatable中,它以datetime格式存储,结果为2013-10-06 12:00:00


如何解决此问题?

您可以将日期时间字符串格式化为仅显示日期。由于.NET没有仅日期的数据类型,因此必须从DateTime对象中筛选日期。
选择
ToSortDateString()
方法,如果需要特殊格式,则必须使用
ToString()
方法,并提供一个格式字符串,如果搜索“DateTime format”(日期时间格式),可以轻松找到该格式字符串。

可以将日期时间字符串格式化为仅显示日期。由于.NET没有仅日期的数据类型,因此必须从DateTime对象中筛选日期。
选择
ToSortDateString()
方法,如果需要特殊格式,则必须使用
ToString()
方法,并提供一个格式字符串,如果搜索“日期时间格式”,可以很容易地找到该格式字符串.

SqlDateTime
类可能有用

SqlDateTime
类可能有用

日期时间总是以默认时间值“12:00:00”存储,您只能将其格式化为所需格式

ds.Table[0].rows[0][0].tostring("yyyy-MM-dd")

datetime总是以默认时间值“12:00:00”存储,您只能将其格式化为您想要的格式

ds.Table[0].rows[0][0].tostring("yyyy-MM-dd")

谢谢大家,我终于采用了这个方法

                foreach (DataRow dr in dt.Rows)
                {
                    dr["date"] = DateTime.Parse((dr["date"].ToString())).ToShortDateString();
                }

它只返回日期而不返回时间。

谢谢大家,最后我采用了这种方法

                foreach (DataRow dr in dt.Rows)
                {
                    dr["date"] = DateTime.Parse((dr["date"].ToString())).ToShortDateString();
                }

它只返回日期而不返回时间。

唯一的“问题”是格式。配置列。在.NET中没有日期类型,只有
日期时间
,因此
日期
数据库类型将转换为CLR类型
日期时间
。您应该在网格中设置列的格式。唯一的“问题”是格式设置。配置列。在.NET中没有日期类型,只有
日期时间
,因此
日期
数据库类型将转换为CLR类型
日期时间
。你应该在网格中设置列的格式。你只能在SQL中存储日期,不能在.NET中存储日期。你只能在SQL中存储日期,不能在.NET中存储日期。无论如何,不要在所有行中循环来设置整个列的格式。我不这么认为,由于.net没有只包含日期的变量,因此没有遍历所有行来格式化整个列。我不这么认为,因为.net没有只包含日期的变量