嗨我在数据库中有这样的日期时间格式
1/18/2014 4:14:52 PM (M/DD/YYYY h/mm/ss)
我将其转换为 ToLongDateString
string date = Convert.ToDateTime(myQuizOccurrence.occurred).ToLongDateString();
**result ->** **Sunday, January 12, 2014**
我想再次将结果日期转换回与数据库相同的格式我不知道该怎么做?
到目前为止,我已经尝试过@matt说使用datetime而不是字符串
DateTime dt2 = (DateTime) myDataGridView.CurrentRow.Cells[3].Value;
我已经检查过它的格式与数据库中的日期时间相同 但是当我尝试在查询中匹配以下代码时
Global.dbCon.Open();
string kalimatsql2 = "SELECT * FROM Quiz_Occurrences WHERE Occurred = " +dt2+ "
ORDER BY ID";
Global.reader = Global.riyeder(kalimatsql2);
if (Global.reader.HasRows) {
while (Global.reader.Read()) {
int idku = Convert.ToInt32(Global.reader.GetValue(0));
MessageBox.Show(idku.ToString());
}
}
Global.dbCon.Close();<br>
给出错误结果
查询表达式中的语法错误(缺少运算符)'发生= 1/12/2014 4:18:59 PM'
我错过了什么?
答案 0 :(得分:1)
您要与之互动的绝大多数数据库应该直接接受DateTime
或DateTimeOffset
类型。从数据库中检索数据时,也不会在将数据发送回数据库时使用字符串。因此,格式无关紧要。
我的猜测是你正在做类似的事情:
DateTime dt = Convert.ToDateTime(mydatareader["MyDateTime"].ToString());
相反,你应该这样做:
DateTime dt = (DateTime) mydatareader["MyDateTime"];
当您将其保存回数据库时,您应该使用parameratized inputs直接使用DateTime
。如果您尝试连接字符串以构建SQL语句you're doing it wrong。
答案 1 :(得分:1)
我在数据库中有这样的日期时间格式
最佳做法是使用DateTime
或DateTimeOffset
类型存储日期和时间信息。
答案 2 :(得分:1)
要将字符串转换回DataTime
,您可以使用:
string str = "Sunday, January 12, 2014";
var dateTime = DateTime.ParseExact(str, "D", CultureInfo.CurrentCulture);
请注意,在将其转换为长日期时会丢失时间部分。