OT? Import Datei in Datenbank zwecks Umrechnung Timestamp

OT? Import Datei in Datenbank zwecks Umrechnung Timestamp

am 11.10.2005 11:05:30 von Michaela Martens

Hallo Ihr Lieben,

ich stehe gerade vor einem für micht nicht gerade leicht zu lösendes Problem:

Habe hier eine Textdatei mit ca 190.000 Zeilen, dort steht wie folgt Kundennummern und Timestamps "123456 1110362755" (Ohne ")

Nun soll ich den Timestamp umrechnen in dd.mm.yyyy

Ich wollte das wie folgt Lösen:

Daten in eine DB (MySQL kippen), und dann mittels PHP den Timestamp ins Datumformat umwandeln.

Leider muss ich ja die Daten in die DB kippen, und daran scheitert es noch:
INSERT INTO ('kdn','timestamp') VALUES ('123456','1110362755') ist da mein Freund.

Jedoch muss ich VOR und NACH der Kundennummer und dem Timestamp in einem Editor ('') setzen.
Aber wie?

Wie würdet Ihr das lösen?

Hoffe bin nicht total OT...

Netten Gruß,
Michaela

Re: OT? Import Datei in Datenbank zwecks Umrechnung Timestamp

am 11.10.2005 11:52:16 von axel.schwenke

Michaela Martens wrote:
>
> ich stehe gerade vor einem für micht nicht gerade leicht zu lösendes Problem:
>
> Habe hier eine Textdatei mit ca 190.000 Zeilen, dort steht wie folgt Kundennummern und Timestamps "123456 1110362755" (Ohne ")
>
> Nun soll ich den Timestamp umrechnen in dd.mm.yyyy

Sicher? Nicht vielleicht besser in das ISO Format 'YYYY-MM-DD'?

> Ich wollte das wie folgt Lösen:
>
> Daten in eine DB (MySQL kippen), und dann mittels PHP den Timestamp ins Datumformat umwandeln.



Wenn man als einziges Werkzeug einen Hammer hat, sieht jedes Problem aus
wie ein Nagel.

> Wie würdet Ihr das lösen?

Unixoide Betriebssysteme haben Bordmittel für Aufgaben wie die
geschilderte. IMNSHO wäre awk hier das Mittel der Wahl. Das gibts auch
für Windows: http://www.google.de/search?q=awk+windows

Guckst du:

~ $cat aaa
123456 1110362755
2345678 1120362755
4711 1130362755

~ $cat aaa | awk '{ print $1, strftime("%d.%m.%Y", $2) }'
123456 09.03.2005
2345678 03.07.2005
4711 26.10.2005

~ $cat aaa | awk '{ print $1, strftime("%F", $2) }'
123456 2005-03-09
2345678 2005-07-03
4711 2005-10-26

~ $cat aaa | awk '{ print $1, strftime("%F %T", $2) }'
123456 2005-03-09 11:05:55
2345678 2005-07-03 05:52:35
4711 2005-10-26 23:39:15

> Hoffe bin nicht total OT...

Die Hoffnung trügt.


XL

Re: OT? Import Datei in Datenbank zwecks Umrechnung Timestamp

am 11.10.2005 12:38:27 von Benjamin Butschko

"Axel Schwenke" schrieb im Newsbeitrag news:dig20g$6ql$1@news.sap-ag.de...

> Wenn man als einziges Werkzeug einen Hammer hat, sieht jedes Problem aus
> wie ein Nagel.
>
Hi,

ich habe es auch wesentlich einfacher gelöst:
Mit einem Filesplitter die Dateien gesplittet und unter Windows einfach in Excel mit der Formel das Timestamp-Feld mit folgender
Formel
umgerechnet:

=FELDNAME/86400+DATUM(1970;1;1)

(Keine Berücksichtigung der Sommer/Winterzeit)

Als CSV gespeichert, und gut ist.

Vielen Dank...

Grüße, Michaela

EOT

Re: OT? Import Datei in Datenbank zwecks Umrechnung Timestamp

am 11.10.2005 12:39:05 von Alexander Fleischer

Hallo !

Michaela Martens schrieb:
> Hallo Ihr Lieben,
>
> ich stehe gerade vor einem für micht nicht gerade leicht zu lösendes Problem:
>
> Habe hier eine Textdatei mit ca 190.000 Zeilen, dort steht wie folgt Kundennummern und Timestamps "123456 1110362755" (Ohne ")
>
> Nun soll ich den Timestamp umrechnen in dd.mm.yyyy

$in=fopen("test.txt","r");
while($s=fgets($in))
echo preg_replace("/(\d+)\s+(\d+)/e","\"$1
\".date('d.m.Y',$2).\"\\n\"", $s);
fclose($in);
?>

>
> Ich wollte das wie folgt Lösen:
>
> Daten in eine DB (MySQL kippen), und dann mittels PHP den Timestamp ins Datumformat umwandeln.

Geht auch,
dann halt
preg_match("/(\d+)\s+(\d+)/", $s, $m);

und

INSERT INTO ('kdn','timestamp') VALUES ('$m[1]','$m[2]')

aber nur zum Umwandeln ist das eigentlich nciht nötig....

Alexander

Re: OT? Import Datei in Datenbank zwecks Umrechnung Timestamp

am 11.10.2005 13:43:06 von Jens Tautenhahn

Axel Schwenke wrote:

> ~ $cat aaa | awk '{ print $1, strftime("%d.%m.%Y", $2) }'
> ~ $cat aaa | awk '{ print $1, strftime("%F", $2) }'
> ~ $cat aaa | awk '{ print $1, strftime("%F %T", $2) }'

Gleich drei Awards fuer "useless use of cat" ;)

SCNR

Gruß
Jens

--
registered linux user #130250