Как отфильтровать по дате = сегодня в скрипте sqlite3 - PullRequest
0 голосов
/ 31 августа 2018

Здесь у меня есть фрагмент кода, цель которого - выполнить запрос к базе данных (в основном на языке sqlite3), а затем экспортировать полученную таблицу в файл csv с автоматическим именем.

set fch=%date:~11,4%%date:~8,2%%date:~5,2%%time:~0,2%%time:~3,2%%time:~6,2%
sqlite3 -header -csv -cmd ".separator ','" C:\ProgramData\PROISER\ISASPSUS\datastore\dsfile.db "select * from analysis;" > holaa%fch%.xlsx

Мой вопрос заключается в том, как вставить в цитируемый запрос фильтр, чтобы отображать только те данные, которые соответствуют фактической дате (дата - это фактическое поле экспортируемой таблицы)

1 Ответ

0 голосов
/ 31 августа 2018

Используйте strftime(), одну из функций sqlite даты и времени , чтобы отформатировать текущую дату ('now') в том же формате, что и в базе данных. Используйте это в сравнении в предложении WHERE вашего запроса.

Я предлагаю преобразовать все существующие значения в стандартные форматы ISO-8601, а не создавать свои собственные. Это упростит задачу как для взаимодействия с другим программным обеспечением, так и для манипулирования датами с помощью функций sqlite и других встроенных функций даты / времени.

Например, если вы используете формат YYYY-MM-DD, вы можете сделать

SELECT * FROM foo WHERE date_added = CURRENT_DATE

и избегайте strftime() полностью.

...