[LØST]MySQL Tid er forkert

peque
Antal: 873
Tilmeldt:
20-04-2005
User is offline
[LØST]MySQL Tid er forkert

Hej Gutter.
Jeg har et system der logger en gang hvert minut i en MySQL Database.
Dette har desværre været pillet ved - Således at min tidserver har været afbrudt.

Jeg har desværre nu en DB hvor 41dage er logget sdom i 1970
Min logninger = 60 x 24 x 41 = 59040 logninger der gerne skulle have den rigtige tid

Jeg har min felt - kaldet Timestamp i dette format 2018-03-15 06:20:00
- Kan jeg på nogen måde scripte(kode mig ud af - således jeg kan opdatere tiden til den korrekte tid - på en nem og overskuelig måde således de 41 dage kan opdateres fra 1970 til 2018


dakkonblackblade
Antal: 132
Tilmeldt:
30-08-2003
User is offline
Jeg tror nok det er NOW()

Jeg tror nok det er NOW() functionen der kommer med tid og dato lige nu...


peque
Antal: 873
Tilmeldt:
20-04-2005
User is offline
HeyProblemet er jeg har

Hey
Problemet er jeg har logning hvert minut fra 27/1 --> 9/3 der starter med 1/1 1970 - Derfor skal jeg ændre denne tid på alle de logninger til at være korrekte i dette år.

Jeg har exporteret en CSV fil og åbnet i Excel og derigennem ændret tidstemplet - Men når jeg så vil indlæse denne fil fejler den totalt :-(
og selvom jeg har sat tiden - --> Nulstiller den tiden til "0000-00-00 00:00:00" og dermed fejler som duplicate

Jeg kan ikke finde dette tidstempel nogen steder og derfor undrer det mig om hvordan jeg skal importere denne csv fil:

mysql> LOAD DATA LOCAL INFILE '/root/unique10.csv' into table perform7916272unique10;
Query OK, 1 row affected, 65535 warnings (1.00 sec)
Records: 56315  Deleted: 0  Skipped: 56314  Warnings: 2590489

Indsætter kun første linje med det forkerte tidstempel og derfor fejler derefter ( Skipper resten af linjerne)
Så Jeg håber nogle kan hjælpe mig her med hvordan jeg skal gøre dette korrekt - så jeg kan få indlæst alle de 56000 insert statements korrekt

P


ejvindh
Antal: 14
Tilmeldt:
17-05-2010
User is offline
Hvis vi antager, at alle

Hvis vi antager, at alle tidsstemplerne er "lige meget" ude af synkroni, så kan du jo lave et php-script, der (1) først henter alle de rækker, som har et tidsstempel tilbage i 1970; (2) løber igennem hver af disse rækker, og henter tidsstemplet ind, (3) konverterer det vha. strtotime, (4) lægger det rette antal sekunder til, (5) konverterer tilbage til datoformat vha date, og (6) updater den pågældende kolonne i rækken.


peque
Antal: 873
Tilmeldt:
20-04-2005
User is offline
Skulle andre komme i samme

Skulle andre komme i samme problemer - Gør som følger:
Export til CSV fil
Indlæst i Excel - Ændret hele kollonen der igennem.
Opret en kopi af tabellen - hvor Tidstemplet er VARCHAR istedet for datetime
Indlæst din csv fil i denne tabel
Slet oprindelige tabel og brug sql_to_date

Create table test.test10
(
SELECT
str_to_date(Timestamp,'%d-%m-%Y %H:%i:%s') AS Timestamp,
str_to_date(Local_Time_DT,'%d-%m-%Y %H:%i:%s') AS Local_Time_DT,
from test.org);

Derefter kan det dumpes og indlæses i den korrekte Database