我在ms-sql数据库中有一个表,其中包含列中的日期,如下所示:
2012-10-31 00:00:00.000
此列列为"datetime"类型.如同在ms sql server管理工作室中,我展开表,然后是列,并查看日期(PK,datetime,not null).
然后在c#中,我得到那些带有语句的日期,并将其分配给一个变量,该变量填充了一个网页,该网页是用asp.net制作的网页.sql语句只是获取用户的最后一个条目.
SqlCommand command = new SqlCommand(); //connection info here sql2 = "select max(day) as day from users u join days d on d.User_ID = u.id where u.ActiveUser = 1 and u.id = " + Users["ID"].ToString();; command.CommandText = sql2; dates["Entry"] = command.ExecuteScalar();
这将填充列中的日期,如下所示:
10/31/2012 12:00:00 AM
现在,我不知道为什么会这样转换.我在调试时跟踪数据,并且使用command.ExecuteScalar()函数进行更改.我希望的格式是:
10/31/2012
没有hh/mm/ss AM.
我无法使任何DateTime转换/分析/格式化正常工作.我花了四天时间.我在这里问了一个类似的问题:将日期转换为正确的格式,尝试所有不同的建议.
我在此期间做的是:
string dt = command.ExecuteScalar().ToString(); dt = dt.Substring(0, dt.IndexOf(" ") + 1); dates["Entry"] = dt;
哪个删除了返回的日期字符串中的空格后的所有文本.这没关系,除了我想比较我得到的这些日期,所以我需要在DateTime中使用它们.试图将这些字符串转换为DateTime是行不通的.
编辑:定义和类型 -
DataRow dates; //for loop here going through for each user dates = _dtuserhours.NewRow(); // _dtuserhours is a DataTable //Sql statements here _dtuserhours = new DataTable("newtable"); DataColumn column; column = new DataColumn(); column.DataType = System.Type.GetType("System.String"); column.ColumnName = "Entry"; _dtUserHours.Columns.Add(column);
The Sharp Ni.. 5
首先,您需要更改SQL字符串以使用命令参数,否则您将接受SQL注入攻击.
接下来,您可以在SQL Server中对DateTime字段的输出进行整形,以输出您要查找的格式.您获得的是DateTime的默认格式,具体取决于您的文化.
或者,您可以轻松地使用返回的DateTime对象的字符串formatter属性,如下所示:
dates["Entry"] = ((DateTime)command.ExecuteScalar()).ToString("MM/dd/yyyy");
编辑:改为尝试:
dynamic result = command.ExecuteScalar(); dates["Entry"] = result.ToString("MM/dd/yyyy");
编辑EDIT - 设置为动态,因为编译器不知道ExecuteScalar在编译时返回什么.
首先,您需要更改SQL字符串以使用命令参数,否则您将接受SQL注入攻击.
接下来,您可以在SQL Server中对DateTime字段的输出进行整形,以输出您要查找的格式.您获得的是DateTime的默认格式,具体取决于您的文化.
或者,您可以轻松地使用返回的DateTime对象的字符串formatter属性,如下所示:
dates["Entry"] = ((DateTime)command.ExecuteScalar()).ToString("MM/dd/yyyy");
编辑:改为尝试:
dynamic result = command.ExecuteScalar(); dates["Entry"] = result.ToString("MM/dd/yyyy");
编辑EDIT - 设置为动态,因为编译器不知道ExecuteScalar在编译时返回什么.