# Frage zu SQL csv import und Datum/Zeit in millisekunden



## badboy3004 (17. Juli 2007)

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.


----------



## the_new_Engineer (13. Juni 2008)

Hat zu diesem Thema inzwischen jemand mehr Ahnung?
Mir würden die Antorten dazu auch enorm weiterhelfen!


----------



## Dunas (14. Juni 2008)

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


----------



## zeja (14. Juni 2008)

badboy3004 hat gesagt.:


> 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?



badboy3004 hat gesagt.:


> 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.


```
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.



badboy3004 hat gesagt.:


> 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.


----------



## MephKi (4. März 2009)

```
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


----------

