Der letzte Teil meines Skripts steht nur noch aus.
Bitte beachten Sie den Code unten.
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"
okay, die Hauptfrage ist folgende: Ich habe in meiner Tabelle eine Spalte mit dem Namen „posting_dates“. Anhand des Veröffentlichungsdatums können wir erkennen, dass die in der Tabelle vorhandenen Daten von diesem bestimmten Datum sind.
jetzt besteht das Problem in meinem Skript darin, dass ich keine Variable verwenden kann, die sich in der Abfrage ändert. Es funktioniert einfach nicht, da es die Abfrage als Anweisung annimmt.
also im Grunde genommen will ich das hier
ich möchte eine solche Abfrage machen, in der ich kein Datum angeben muss. Ich möchte, dass sie die Daten des jeweiligen Tages abruft, weil ich die Abfrage nicht jedes Mal ändern kann.
Ich kann nicht so sein, dass posting_date="2020-03-30" lautet, ich brauche etwas, das jeden Tag automatisch Änderungen an der Abfrage vornimmt, weil es verwendet wird, um eine Datei mit diesem bestimmten Datum zu erstellen.
Ich brauche wirklich Hilfe, Leute.
Vielen Dank und Grüße, Sagar Mandal
Antwort1
Verwenden Sie einfach keine einfachen Anführungszeichen:
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'";
Auf diese Weise können Sie auch den Dateinamen von Anfang an richtig festlegen:
into outfile '/created_files/offline_collection$Now.csv'
Beachten Sie auch, dass Ihr date
Format wahrscheinlich nicht das gewünschte ist. Sie haben Folgendes:
$ date +"%d-%m-20%Y"
14-04-202020
Aber Sie möchten wahrscheinlich Folgendes:
$ date +%F
2020-04-14
Also: Now=$(date +%F)
.