match query datetime in database ms access

核能气质少年 提交于 2019-12-25 10:57:08

问题


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();

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;

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


edit

this is my Global.riyeder

public static OleDbDataReader riyeder(string kalimatSql) {
    dbCmd.CommandText = kalimatSql;
    return dbCmd.ExecuteReader();            
}

回答1:


Try like this

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();



回答2:


You are missing single quotes for value for attribute Occurred. it should be

 string kalimatsql2 = "SELECT * FROM Quiz_Occurrences WHERE Occurred = '" +dt2+ "' 
                            ORDER BY ID";


来源:https://stackoverflow.com/questions/21396615/match-query-datetime-in-database-ms-access

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!