時間

時間

私の使命は、dbaccessのUNLOAD TOステートメントを使用してデータベースからデータをエクスポートし、同様のデータベースに挿入できるファイルに変換することです。

今質問は次のとおりです。

以前のデータベース(DB1と呼ばれる)は、1993年1月1日から数分単位でいくつかの日付を保存します。たとえば、今日は11.980.800分です。次に、その値を取得し、%d.%m.%YDATEのみを値として受け入れる新しいデータベース(DB2)の行に合うように形式の日付に変換する必要があります。

DB1からエクスポートされたデータは区別されます^。他の行に関連するいくつかのステートメントがありますが、すでに作成したifように、DATE値を持つ行を処理することはできません。印刷ドアは次のとおりです。

print "INSERT INTO zdv_voa(voa_fnr, voa_kritkz, voa_krit, voa_kz, voa_datv, voa_datb, voa_grund) VALUES("$1",\'"$2"\',\'"$3"\',\'"$4"\',"$5","$6",\'"$7"\');"

$5$6日付に変換する必要がある方です。

awkスクリプトを実行した後、次の内容を含むファイルが必要です。

INSERT INTO zdv_voa(voa_fnr, voa_kritkz, voa_krit, voa_kz, **voa_datv**, **voa_datb**, voa_grund) VALUES(1,'P','148','T','10.10.2015','02.07.1999','60');

ここで使用された日付は単なる例であり、他の値は私が直接変換したものです。

答え1

エポック以来、1993年1月1日までに何秒かかりましたか?

date -d '01/01/1993' +%s

時間

awkが許可するかどうかをテストできます。strftime()

echo 11980000 | awk '{u=60*$1+725842800 ; printf "%d -> %s\n",u, strftime("%x",u); } '

今回は戻ってください。 10/12/2015

次に、コードに次を追加します。

dollar5=strftime("%x",60*$5+725842800) ;
# $6 is left as an exercice ..
print "INSERT INTO zdv_voa(voa_fnr, voa_kritkz, voa_krit, voa_kz, voa_datv, voa_datb, voa_grund) VALUES("$1",\'"$2"\',\'"$3"\',\'"$4"\',\'"dollar5"\',\'"dollar6"\',\'"$7"\');"

関連情報