시간

시간

내 임무는 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"\');"

관련 정보