Я понял это неправильно - позор мне.strftime
будет считывать только значения ISO 8601 (или отметка времени / юлианский период). Указанный формат не применяется к входу - он предназначен только для значения .
По этой причине данные в база данных должна все еще иметь естественный порядок сортировки.Предлагаемые форматы: ISO 8601 (строка), отметка времени (целое число) и юлианская дата (число с плавающей запятой).Использование даты, такой как m/d/y
в базе данных не будет работать для сравнения диапазонов, потому что она не соответствует естественному порядку.
strftime
и друзья просто позволяют генерировать одну иззначения, полезные для сравнения - например, можно преобразовать из ISO 8601 / метка времени / юлианский ввод в нестандартный / ISO 8601 / метку времени / юлианский-дата .Они не могут напрямую конвертировать из пользовательского значения.
Самый простой способ исправить базу данных - это, вероятно, использовать такой язык, как Python, для написания скрипта для преобразования существующих данных.Небольшая Java-программа также может быть написана с использованием SimpleDateFormat для анализа существующих значений и их записи с использованием одного из рекомендуемых типов.
Historical:
Попробуйте по частям с консоли (это позволит должен быстрее экспериментировать с запросом) - первый условный, затем второй.Что возвращает, что и почему?После того, как каждая часть будет работать, будет работать их размещение.
Есть несколько ошибок формата strftime - см. Дата и время для форматов и проверьтеснова строки :) Также, если используется более подходящий формат даты (ISO 8601), можно просто использовать datetime
и не беспокоиться об указании формата явно.Значения ISO 8601 также лексически сортируются как строки - дополнительное преимущество.
Я не уверен, как обработчик Java SQLite будет обрабатывать Date при передаче в качестве параметра в параметризованный запрос(параметризованные запросы действительно должны использоваться )) ... но в любом случае это вторичная проблема текущего наблюдаемого поведения.
Счастливое кодирование.