У меня есть база данных SQLite, где я пытаюсь получить все строки с крайним сроком (созданные как DATETIME, typeof (крайний срок) возвращает текст) после сегодняшнего дня. Вот сроки совпавшие с сегодняшнего дня:SQLite date weirdness
sqlite> SELECT deadline, Date('now') FROM confs;
2016-08-28|2016-07-05
2016-06-30|2016-07-05
...
Теперь, если я пытаюсь выбрать даты за сегодня:
sqlite> SELECT deadline FROM confs WHERE deadline > Date('now')
sqlite>
строки не возвращаются. С другой стороны,
sqlite> SELECT deadline, Date('now') FROM confs WHERE deadline < Date('now');
2016-08-28|2016-07-05
2016-06-30|2016-07-05
...
Я пробовал:
- создания таблицы с «крайнего срока» типа текста - нет успеха, тот же результат.
- листинг либо крайний срок, либо дата ('now') как текст - не успех, тот же результат.
- литье и крайний срок и дата ('сейчас') в виде текста - не успех, тот же результат.
- с использованием крайнего срока использования ГДЕ> '2016-07-05' - никакого успеха, такого же результата.
- с использованием предложения TimBiegelsen: WHERE deadline> STRFTIME ('% Y-% m-% d', 'now') - нет успеха, такого же результата.
Я думаю, что проблема связана с типом крайнего срока, но это предположение.
Цель состоит в том, чтобы иметь таблицу с одним столбцом, содержащей даты, где я могу выбрать даты после даты («сейчас»). Что я делаю не так?
@TimBiegeleisen: создается как DATETIME NOT NULL. SELECT typeof (крайний срок) FROM confs возвращает «текст» –
Примечание: 'выберите крайний срок от confs, где deadline = '2016-08-28';' не возвращает строки, - поэтому, вероятно, проблема со значениями или типами в эта колонка. –
Столбец 'deadline' находится в странном формате. Вместо этого попробуйте использовать «STRFTIME (крайний срок)». –