簡體   English   中英

匹配數據庫ms訪問中的查詢日期時間

[英]match query datetime in database ms access

嗨,我有這樣的數據庫訪問日期時間格式

1/18/2014 4:14:52 PM (M/DD/YYYY h/mm/ss)

當我試圖選擇以下代碼查詢時

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

它給出了錯誤結果
查詢表達式中的語法錯誤(缺少運算符)'發生= 1/12/2014 4:18:59 PM'

這是我的dt2 var

DateTime dt2 = (DateTime) myDataGridView.CurrentRow.Cells[3].Value;

我已經檢查了很多次... dt與數據庫中的datetime具有相同的格式,但它仍然給出了錯誤結果....如何正確查詢


編輯

這是我的Global.riyeder

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

您缺少屬性Occurred的值的單引號。 它應該是

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

試試這樣吧

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM