Глядя на замену части кода 2017-02-14 на дату вчерашнего дня как функцию, так как я хочу использовать этот запрос без необходимости его ежедневного изменения. Я пробовал адаптировать другой код, найденный на форумах, но никуда не денусь.Добавление даты() с суффиксом в запрос sqlite3
Я ищу базу данных, пытаясь найти время, когда определенное событие началось в предыдущий день, когда возникает необходимость в подобном выражении и подчеркиваниях. Я попытался использовать функцию date() sqlite3, но не смог найти способ добавить суффикс «__ __ __», чтобы найти конкретную запись.
Кроме того, я недостаточно знаком с bash, чтобы передать date +'%Y-%m-%d'
запросу и добавить суффикс «__ __ __» до конца, чтобы найти запись, которую я ищу. ,
#!/bin/bash
yesterday=$(date -d yesterday +'%Y-%m-%d __:__:__')
startDetails=sqlite3 hub.db 'select substr(timestamp,12,19)
from OET where entryID="0"
and timestamp like "2017-02-14 __:__:__";'
stopDetails=sqlite3 hub.db 'select substr(timestamp,12,19)
from OET where entryID="5"
and timestamp like "'"$yesterday"'";'
echo "Start: " $startDetails "Finish: "$stopDetails
exit 0
fi
Я скопировал в упрощенной форме то, что я пытаюсь сделать. В текущем состоянии первый запрос возвращается правильно, перечисляя два начальных времени для дня, однако второй запрос ничего не возвращает, запуск этого сценария в debug возвращает следующие результаты.
+ $'\r'
checkWebID.sh: line 2: $'\r': command not found
++ date -d yesterday '+%Y-%m-%d __:__:__'
' yesterday='2017-02-14 __:__:__
++ sqlite3 hub.db 'select substr(timestamp,12,19)
from OET where entryID="0"
and timestamp like "2017-02-15 __:__:__";'
+ Details='04:49:01
'4:07:42
";'sqlite3 hub.db 'select substr(timestamp,12,19)
from OET where entryID="5"
and timestamp like "2017-02-14 __:__:__
+ StopDetails=$'\r'
+ $'\r'
checkWebID.sh: line 6: $'\r': command not found
+ echo 'Start: ' 04:49:01 $'14:07:42\r' 'Finish: ' $'\r\r'
Finish: :49:01 14:07:42
+ exit $'0\r'
: numeric argument required: 0
Сообщения об ошибках с '$ '\ r'' в них указывают на то, что вы играли на компьютере с Windows, и ваш сценарий содержит концы строк CRLF (DOS), а не окончания строк в Unix-подобных NL (LF) , Исправьте формат файла для работы как Unix, а не DOS (в Vim, ': set fileformat = unix', вероятно, выполнит эту работу, есть много других способов сделать это, и многочисленные вопросы о SO, где изменение окончания строки является релевантным Исправлено. –
Используя команду dos2unix, я смог преобразовать формат файла из DOS в Unix, запуск скрипта теперь возвращает желаемые результаты. Спасибо за вашу помощь, вы спасли меня, чтобы тащиться через много грязи. Cheers – selfcontained