Gå til innhold

Anbefalte innlegg

Jeg har en gammel tabell som inneholder et datofelt hvor det har blitt brukt INT som data type. Denne ønsker jeg derimot å endre til DATETIME datatype, men får det ikke helt til.

 

Noen forslag til hvordan dette kan gjøres i MySql gjennom phpmyadmin.

 

Den "gamle" datoen har blitt lagret ved hjelp av time() funksjonen i php og har blitt seende slik ut i mysql 1144928349(<-dette er eks på en dato). Nå vil jeg gjerne endre den til denne formen 0000-00-00 00:00:00, MEN også beholde postene da tabellen består av ca 600 poster

 

takker :(

Lenke til kommentar
Videoannonse
Annonse
Jeg har en gammel tabell som inneholder et datofelt hvor det har blitt brukt INT som data type. Denne ønsker jeg derimot å endre til DATETIME datatype, men får det ikke helt til.

 

Noen forslag til hvordan dette kan gjøres i MySql gjennom phpmyadmin.

 

Den "gamle" datoen har blitt lagret ved hjelp av time() funksjonen i php og har blitt seende slik ut i mysql 1144928349(<-dette er eks på en dato). Nå vil jeg gjerne endre den til denne formen 0000-00-00 00:00:00, MEN også beholde postene da tabellen består av ca 600 poster

 

takker  :(

5922482[/snapback]

 

Hva gir Time() funksjonen fra seg, sekunder siden 1971-01-01 00:00:00?

Du må nok uansett regne med å gjøre en kovertering. Opprett ny datetime kolonne NyDato i tabellen.

 

Jeg kjenner ikke MySQL godt nok. Som grunnlag for dato bruker de fleste et float/real verdi der dato er heltallsdelen og tid er etter komma. 12333,50 er altså kl 12 på dagen en eller annen dato. Du kan med andre ord regne om fra selunder til dager ved å dele din gamle dato på 86400:

 

Update tabell

SET NyDato = GmlDato/86400 + xAntallDager

 

Der xAntallDager er forskjellen på basedato mellom heltallsformatet og desimaltallsformatet. MS SQL har vel dag 1 på 1900-01-01 om jeg ikke husker feil.

Det er mulig du må konvertere NyDato resultetet også men igjen, det spørs på MySQL.

Lenke til kommentar

Hmh, endelig fikk jeg det til, og får de som lurer på hvordan jeg løste det, her er koden:

 

UPDATE news SET datetime=FROM_UNIXTIME(int_time);

 

hvor news er navnet på tabellen, datetime er den nye kolonnen med datatype DATETIME, mens int_time er den gamle kolonnen hvor det har blitt brukt int som datatype. FROM_UNIXTIME() er MySql funksjon som gjør om php's time() til mysql format.

 

:cool:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...