Frage zu SQL csv import und Datum/Zeit in millisekunden

badboy3004

Grünschnabel
Hallo.

Ich benutze mySQL mit myPHPAdmin.

Ich lese die Daten aus so einer csv-Datei:

Time;Load;rpm;km/h
27.06.2007 07:37:02,031;0,00;;
27.06.2007 07:37:03,656;0,00;1569,00;0,00
27.06.2007 07:37:05,015;72,94;2471,50;18,00
27.06.2007 07:37:05,796;58,43;2776,50;26,00
27.06.2007 07:37:06,625;49,02;3495,50;31,00
27.06.2007 07:37:07,437;11,76;2431,00;31,00
27.06.2007 07:37:08,250;39,22;2071,00;34,00
27.06.2007 07:37:09,062;64,71;2326,00;37,00
27.06.2007 07:37:09,875;66,27;2453,00;39,00
27.06.2007 07:37:10,703;41,57;2551,50;40,00
27.06.2007 07:37:11,500;46,27;2662,00;42,00
27.06.2007 07:37:12,312;41,57;2808,00;45,00
27.06.2007 07:37:13,109;0,00;2488,50;45,00
27.06.2007 07:37:13,968;0,00;1459,00;44,00

1. Warum kann ich das Datum in diesem Format: 03.07.2007 12:34:23,567 aus einer csv-Datei nicht einlesen?

2. Kann ich in SQL wie in Excel z.B. (A4-A3) rechnen?

Also wenn das so in Excel stehen würde

A
3: 27.06.2007 07:37:05,015
4: 27.06.2007 07:37:05,796

kann ich ja einfach (=A4-A3) in eine Zelleschreiben und das Ergebniss sehen. und das für die folgenden Zeilen auch.

Wenn ja wie geht das habe die Syntax von SQL und PHP noch nicht so drauf.

3. Wie kann ich Klassen defenieren bzw. zuweisen.

4. Kann ich ein Diagramm zeichnen in dem SQL bzw. PHP? Wenn ja wie.

Vielen Dank im voraus.
MfG, Badboy.
 
zu 2.
Ja kan SQL aber nicht in der Form. Dafür musst du eine Spalte hinzufügen und durch diese Spalte wird jedem Eintrag eine eindeutige Id zugeordnet.
zu 3.
In SQL gibt es meines Wissens nach keine Klassen.
zu 4.
Du kannst mit PHP Diagramme zeichnen lassen. Einfach mal nach googeln
 
Wenn ja wie geht das habe die Syntax von SQL und PHP noch nicht so drauf.
Dann solltest du dir zunächst das mal aneignen. Die Dokumentation von MySQL ist z.B. sehr gut. Die von PHP eigentlich auch. Kennst du die entsprechenden Seiten?

1. Warum kann ich das Datum in diesem Format: 03.07.2007 12:34:23,567 aus einer csv-Datei nicht einlesen?

Das geht schon allerdings nicht direkt, weil MySQL nur ein bestimmtes Datumsformat versteht.

SQL:
LOAD DATA INFILE 'file.txt'
  INTO TABLE t1
  (@tempTime, load,rpm,kmh )
  SET time = str_to_date(@tempTime, '%d.%m.%Y %H:%i:%s,%f');

Die Spalte Time aus deiner csv wird so zunächst in die Variable tempTime eingelesen und dann über die Funktion str_to_date entsprechend des angegebenen Patterns in ein Datum umgewandelt und gesetzt.

3. Wie kann ich Klassen defenieren bzw. zuweisen.

Das mußt du dir mal zu PHP durchlesen. SQL ist eine Datenbankanfrage-Sprache und kennt sowas nicht.

Es gibt allerdings auch Objektorientierte Datenbanken die ein wenig anders funktionieren.
 
Code:
LOAD DATA INFILE 'file.txt'
INTO TABLE t1
(@tempTime, LOAD,rpm,kmh )
SET time = str_to_date(@tempTime, '%d.%m.%Y %H:%i:%s,%f');
Die Spalte Time aus deiner csv wird so zunächst in die Variable tempTime eingelesen und dann über die Funktion str_to_date entsprechend des angegebenen Patterns in ein Datum umgewandelt und gesetzt.
Also, ich versuche, dem Beispiel folgend, eine CVS-Datei mit insgesamt 6 Spalten in eine SQL-Datenbank zu importieren. Es funktioniert aber nur in der ersten Spalte (in diesem Falle 'Time'), die anderen Spalten (in diesem Falle 'load', 'rpm', 'km/h') bleiben in der Tabelle leer und werden durch den Import nicht gefüllt. Was mache ich falsch?
In meinem Falle enthalten die ersten 3 Spalten Datumsangaben mit Uhrzeit.

MfG, MephKi
 
Zurück