Einfache update Frage

hans32

Benutzer
Beiträge
14
Hallo zusammen,

wahrscheinlich nur eine Kleinigkeit:

Ich importiere CSV Dateien mit Messwerten in eine MySQL Datenbank. Diese haben aber nur eine Date und eine Time Spalte. Da ich für die Abfrage jedoch eine Datetime- Spalte benötige, mache ich folgendes nach dem CSV-Import:

update tabelle set Datetime = concat(DATE,' ',TIME)

Außerdem stimmt die Zeitzone nicht, das korrigiere ich anschließend mit:

update tabelle set Datetime = DATE_ADD(Datetime, INTERVAL 2 HOUR)

Im Prinzip funktioniert das so auch. Mittlerweile ist die DB jedoch recht groß geworden und die Abfrage dauert entsprechend lange. Eleganter wäre es natürlich, wenn ich nur die importierten Zeilen updaten würde.

Also ungefähr so:
update tabelle set Datetime = concat(DATE,' ',TIME) AND DATE_ADD(Datetime, INTERVAL 2 HOUR) WHERE Datetime IS NULL

..so geht es allerdings nicht.. Kann mir hier jemand helfen?
 
Werbung:
Hallo zusammen,

wahrscheinlich nur eine Kleinigkeit:

Ich importiere CSV Dateien mit Messwerten in eine MySQL Datenbank. Diese haben aber nur eine Date und eine Time Spalte. Da ich für die Abfrage jedoch eine Datetime- Spalte benötige, mache ich folgendes nach dem CSV-Import:

update tabelle set Datetime = concat(DATE,' ',TIME)

Außerdem stimmt die Zeitzone nicht, das korrigiere ich anschließend mit:

update tabelle set Datetime = DATE_ADD(Datetime, INTERVAL 2 HOUR)

Im Prinzip funktioniert das so auch. Mittlerweile ist die DB jedoch recht groß geworden und die Abfrage dauert entsprechend lange. Eleganter wäre es natürlich, wenn ich nur die importierten Zeilen updaten würde.

Also ungefähr so:
update tabelle set Datetime = concat(DATE,' ',TIME) AND DATE_ADD(Datetime, INTERVAL 2 HOUR) WHERE Datetime IS NULL

..so geht es allerdings nicht.. Kann mir hier jemand helfen?


tausche das AND gegen ein Komma.
 
Ich würde sagen das muss geschachtelt werden, oder kann man die selbe Spalte in einem Update Statement 2x hintereinander anfassen?
update tabelle set Datetime = DATE_ADD(concat(DATE,' ',TIME) , INTERVAL 2 HOUR) WHERE Datetime IS NULL
 
Wenn ich folgendes eingebe:

update tabelle set `Datetime` = concat(`DATE`,' ',`TIME`), DATE_ADD(`Datetime`, INTERVAL 2 HOUR) WHERE `Datetime` IS NULL

bekomme ich folgenden Fehler:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DATE_ADD(`Datetime`, INTERVAL 2 HOUR) WHERE `Datetime` IS NULL' at line 1

Leider funktioniert das so nciht...
 
Wenn ich folgendes eingebe:

update tabelle set `Datetime` = concat(`DATE`,' ',`TIME`), DATE_ADD(`Datetime`, INTERVAL 2 HOUR) WHERE `Datetime` IS NULL

bekomme ich folgenden Fehler:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DATE_ADD(`Datetime`, INTERVAL 2 HOUR) WHERE `Datetime` IS NULL' at line 1

Leider funktioniert das so nciht...


Ja, sorry, hatte das falsch geparst...
 
Werbung:
Zurück
Oben