Kurt_im Skrevet 14. april 2006 Del Skrevet 14. april 2006 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
Babelfisken Skrevet 15. april 2006 Del Skrevet 15. april 2006 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
Kurt_im Skrevet 16. april 2006 Forfatter Del Skrevet 16. april 2006 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. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå