dateコマンド
今日の復習
dateコマンド(GNU date)を使って、先々月の最後の日を正確に出したかった
もちろん、閏年でもいける感じで。
さらに基準の日を変数に格納して、
そのあとに続くSQLにある日付をsedで変えられるようにする必要があった。
やってみた
流れは以下の通り。
当月の1日をとる→先月の1日をとる→先月の1日の前日をとる
# 当月の1日をとる。日付は1日固定にする。 DATE_TODAY=`date '+%Y-%m-01'` # 先月の1日をとる。変数に格納した日付を使う。 DATE_LMONTH =`date -d "${DATE_TODAY} -1 month" '+%Y-%m-01'` # 先々月の月末の日付をとる。 DATE_LAST=`date -d "${DATE_LMONTH} -1 days" '+%Y-%m-01'`
ちなみに、検証する時に当月の1日はこのように設定した。
日付指定する時は-dオプションをつける
DATE_TODAY=`date -d "2020/04/01" '+%Y-%m-%d'`
また、変数なしで本日の日付から1ヶ月前を出すなら以下の通り
DATE_LMONTH=`date -d '+%Y-%m-%d' " -1 month" `
結果はこんな感じ。2020年4月1日を基準に実行してみた。
(ひたすらechoで画面に出すだけ)
日付チェック 先月の1日:2020-03-01 当月の1日:2020-04-01 先々月末:2020-02-29
オリンピックの年何してるんでしょうね