私の脚本の最後の部分は保留中です。
以下のコードを参照してください。
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)
。