ASP.Net C#sqlDr.GetValue(a)日期列也显示时间

时间:2018-03-02 20:14:58

标签: c# sql asp.net date

我尝试使用

 sqlDr.GetValue(a).ToString() 

显示我的数据库中的DATE列,如下所示..(Date Bymitted列) enter image description here

但问题是,当我使用getValue(8).toString()显示它时,会显示如下内容。

enter image description here

感谢您花时间阅读我的帖子,非常感谢任何回复!

2 个答案:

答案 0 :(得分:1)

问题是.Net没有Date-only原语类型。因此,Sql Server Date列类型映射到.Net中的完整DateTime值,该值始终包含时间组件。如果您不提供时间组件,DateTime结构将具有0值时间组件,该组件映射到12:00:00.000 AM

要解决此问题,您需要指定列的输出格式,以便明确不包含时间值。你想要这样的东西:

 ((DateTime)getValue(8)).ToString("d")

但是,您需要的确切代码会根据结果表的创建方式而有很大差异。如有必要,请检查SqlDataReader.GetDataTypeName()功能以了解您正在处理的类型。

答案 1 :(得分:0)

尝试使用DateTime.ToShortTimeString Method ()

Console.WriteLine("Short date string:  \"{0}\"\n", myDateTime.ToShortDateString());

输出:短日期字符串:“5/16/2001”