Последняя часть моего сценария еще только ожидает своего завершения.
пожалуйста, обратитесь к коду ниже.
master_db_user='root'
master_db_passwd='123'
master_db_port='3306'
master_db_host='localhost'
master_db_name='uppcldashboard'
Now=$(date +"%d-%m-20%Y")
#Preparing script
#SQL_Query='select * from test_table;'
#MySql Command to connect to a database
mysql -u$master_db_user -p$master_db_passwd -D$master_db_name -e 'select * from uppcl_amount_details into outfile "/created_files/uppcl.csv" fields terminated by "," lines terminated by "\n"';
mv /created_files/uppcl.csv /created_files/offline_collection$Now.csv
sed -i "1i ID","Cashier_id","Discom","Division_Code","division_Name" /created_files/offline_collection$Now.csv
echo "End of the Script"
Хорошо, главный вопрос таков: у меня в таблице есть столбец, который называется posting_dates. Благодаря дате публикации мы можем узнать, что данные, представленные в таблице, относятся к этой конкретной дате.
Теперь проблема в моем скрипте заключается в том, что я не могу использовать никакую переменную, которая изменяется в запросе. Он просто не работает, поскольку воспринимает запрос как оператор.
так что в основном я хочу вот это
Мне нужно сделать такой запрос, в котором мне не нужно упоминать какую-либо дату. Я хочу, чтобы он извлекал данные за этот конкретный день. Потому что я не могу менять запрос каждый раз.
Я не могу сделать что-то вроде posting_date="2020-03-30", мне нужно что-то, что автоматически вносит изменения в запрос каждый день, потому что это будет использоваться для создания файла с этой конкретной датой.
Очень нужна помощь этим людям.
Спасибо и с уважением, Сагар Мандал
решение1
Только не используйте одинарные кавычки:
mysql -u$master_db_user -p$master_db_passwd -D$master_db_name \
-e "select * from uppcl_amount_details where date='$Now' into \
outfile '/created_files/uppcl.csv' fields terminated by ',' \
lines terminated by '\n'";
Таким образом, вы также можете получить имя файла с самого начала:
into outfile '/created_files/offline_collection$Now.csv'
Также обратите внимание, что ваш date
формат, вероятно, не тот, который вам нужен. У вас есть это:
$ date +"%d-%m-20%Y"
14-04-202020
Но вам, вероятно, нужно это:
$ date +%F
2020-04-14
Так: Now=$(date +%F)
.