私のスクリプトの最後の部分は未定です。
以下のコードを参照してください。
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という列があります。公開日によって、テーブル内のデータがその特定の日付のものであることがわかります。
今私のスクリプトの問題は、クエリで変更された変数を使用できないことです。クエリをステートメントとして使用するため、まったく機能しません。
だから基本的に私が望むのはこれです。
日付に言及する必要のないクエリを作成したいと思います。その日のデータを手に入れることを願っています。毎回クエリを変更することはできないからです。
毎日クエリで自動的に変更する必要があるpost_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)
。