匹配数据库ms access中的查询日期时间
问题描述:
我在这样的数据库访问中有日期时间格式
hi i have datetime format in database access like this
1/18/2014 4:14:52 PM (M/DD/YYYY h/mm/ss)
当我尝试使用以下代码选择查询时
when i tried to select query whith this following code
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();
给出错误结果
查询表达式中的语法错误(缺少运算符)Occurred = 1/12/2014 4:18:59 PM"
这是我的 dt2 var
it's give error result
Syntax error (missing operator) in query expression 'Occurred = 1/12/2014 4:18:59 PM'
this is my dt2 var
DateTime dt2 = (DateTime) myDataGridView.CurrentRow.Cells[3].Value;
我已经检查过很多次了... dt 与数据库中的日期时间具有相同的格式但它仍然给出错误结果....如何正确查询
i already check it many time...that dt has same format as datetime in database but it's still give that error result....how to query it correctly
这是我的 Global.riyeder
this is my Global.riyeder
public static OleDbDataReader riyeder(string kalimatSql) {
dbCmd.CommandText = kalimatSql;
return dbCmd.ExecuteReader();
}
答
试试这个
Global.dbCon.Open();
string kalimatsql2 = "SELECT * FROM Quiz_Occurrences WHERE Format(DateOccurred, 'mm/dd/yyyy') = Format( '" + dt2+ "', 'mm/dd/yyyy') 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();