Почему функция sqlite strftime не возвращает никаких строк.?

#c# #winforms #sqlite

#c# #winforms #sqlite

Вопрос:

Привет, я работаю над проектом sqlite около месяца, теперь я храню свои даты в формате «дд-ММ-гггг ЧЧ: мм: сс» (т. е. 25-03-2019 18:36:59 вечера) теперь я хочу получать записи от-до дат.

я пытался использовать эту функцию strftime с тем же форматом, но возвращается ноль строк. Мой запрос выглядит следующим образом

 SELECT * FROM products as SM WHERE SM.date BETWEEN strftime('%d-%m-%Y %H:%M:%S', '24-03-2019 12:00:00 AM') AND strftime('%d-%m-%Y %H:%M:%S', '26-03-2019 12:00:00 AM')"
  

Вот мой код на c #, на который вы, ребята, можете посмотреть

 using (SQLiteConnection con = new SQLiteConnection(LoadConnectionStringManual()))
                {
                    using (SQLiteDataAdapter adapter  = new SQLiteDataAdapter (query,con))
                    {
                        adapter.SelectCommand.Parameters.AddWithValue("@ToDate", dttoDate.ToString("dd-MM-yyyy"));
                        adapter.SelectCommand.Parameters.AddWithValue("@FromDate", dtfromDate.ToString("dd-MM-yyyy"));
                        adapter.Fill(dtbl);
                    }
                }
  

это работает, когда я удаляю предложение Where. Я не знаю, как заставить это работать, поэтому буду признателен за любую помощь.

Комментарии:

1. Функции даты и времени возвращают значение null при задании строки, которая не находится ни в одном из форматов, которые они могут обрабатывать. Смотрите список поддерживаемых форматов здесь: sqlite.org/lang_datefunc.html

2. попробуйте удалить `AM` из строки даты. если это не сработает, попробуйте изменить на strftime('%Y-%m-%d', '2019-03-24')

3. @Shawn Спасибо, я уже изучил это и нашел решение, но дело в том, что у меня более 6000 записей, и я не хочу изменять дату для каждой из них в формате, который обрабатывает sqlite.

4. @Matt.G спасибо за предложение, но я уже пробовал это, не работает.

5. Я предлагаю сохранить ваши временные метки в одном из форматов, принятых функциями даты и времени.