2016-02-18 2 views
0

Я пытаюсь выбрать строки, которые находятся между начальным и конечным в C# с sqlite.select rows by datetime в 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 

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

+1

У вас не хватает места перед WHERE. –

ответ

0

У вас не хватает пространства символ перед где:

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')"; 
Смежные вопросы