我有一个表,其中包含像这样一列日期的MS-SQL数据库:问题将字符串转换为datetime
2012-10-31 00:00:00.000
这列被列为型“日期时间”。在ms sql server management studio中,我扩展了表,然后是列,并查看日期(PK,datetime,非空)。
然后在c#中,我得到这些日期w /一个语句,并将其分配给一个变量,填充网页上的一个网格的列在w/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
现在,我不知道为什么它变得转换这样。我在调试的同时跟踪数据,并使用命令.ExecuteScalar()函数进行更改。我想要的格式是:
10/31/2012
没有hh/mm/ss AM。
我无法获得任何日期时间转换/解析/格式正常工作。我已经花了四天的时间。我在这里问了一个类似的问题:Converting date to proper format,尝试所有不同的建议。
我做其间的是:
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);
您是否尝试过使用日期作为列数据类型而不是日期时间? –
好的建议,但我不能改变任何数据库。我被允许从中读取任何内容,但没有任何修改。 – pfinferno