выбрать строки по дате и времени в sqlite

Я пытаюсь выбрать строки, которые находятся между датой начала и датой окончания в С# с помощью sqlite.

мои даты отформатированы следующим образом:

2015-05-16T17:22:04.920+02:00

который должен быть допустимым форматом для sqlite (ссылка: http://www.sqlite.org/lang_datefunc.html< /а>)

я пытаюсь выбрать строку следующим образом:

string CmdString = "SELECT * FROM " + tablename +  "WHERE DATETIME(timekey) >= DATETIME('2015-05-16T17:22:04.920+02:00') AND DATETIME(timekey) <= DATETIME('2015-05-16T17:24:04.920+02:00')";
SQLiteCommand cmd = new SQLiteCommand(CmdString, con);
SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd);
DataTable MatchDt = new DataTable();

sda.Fill(MatchDt);

Ошибка, которую я получаю:

SQLiteException: SQL logic error or missing database

Что я делаю неправильно?


person ManuKaracho    schedule 18.02.2016    source источник
comment
Вам не хватает пробела перед WHERE.   -  person Miquel Coll    schedule 18.02.2016


Ответы (1)


Вам не хватает пробела перед where:

string CmdString = "SELECT * FROM " + tablename +  " WHERE DATETIME(timekey) >= DATETIME('2015-05-16T17:22:04.920+02:00') AND DATETIME(timekey) <= DATETIME('2015-05-16T17:24:04.920+02:00')";

И я бы рекомендовал использовать оператор BETWEEN:

string CmdString = "SELECT * FROM " + tablename +  " WHERE DATETIME(timekey) BETWEEN DATETIME('2015-05-16T17:22:04.920+02:00') AND DATETIME('2015-05-16T17:24:04.920+02:00')";
person Miquel Coll    schedule 18.02.2016