Avatar billede phineas_phreak Nybegynder
30. juli 2005 - 17:27 Der er 7 kommentarer og
2 løsninger

problem med dato til timestamp

Hejsa. Jeg har lige importeret en masse gammel data fra en access db, men desværre har alle posterne en dato som er gemt som string i formattet dd-mm-yyyy. Det jeg ønsker nu er at opdatere hele denne kolonne til et timestamp (UNIX_TIMESTAMP). Jeg har prøvet noget ala

update tabel set datokolonne = UNIX_TIMESTAMP(datokolonne)

men jeg får forkert timestamp ud, så hva skal jeg gøre for at få det til at virke ?

på forhånd tak
Avatar billede arne_v Ekspert
30. juli 2005 - 17:30 #1
min første tanke er:

1) opret et nyt felt af typen DATETIME

2) UPDATE tabel SET nytfelt = CAST(gammeltfelt AS DATETIME)

3) check data

4) slet gamle felt
Avatar billede phineas_phreak Nybegynder
30. juli 2005 - 17:42 #2
Det vil den ik rigtigt :(

24-03-2002 bliver f.eks. til 2024-03-20 02:00:00

ligesom

09-04-2002 bliver til 2009-04-20 02:00:00
Avatar billede phineas_phreak Nybegynder
30. juli 2005 - 17:47 #3
Kunne man evt. bruge noget substring til at bytte rundt på cifrene ?

f.eks.

update tabel set nydato = 'right(datofelt,2)-left(datofelt,2)...
Avatar billede arne_v Ekspert
30. juli 2005 - 17:47 #4
så skal datoen nok lige vendes i gammeltfelt inden cast
Avatar billede arne_v Ekspert
30. juli 2005 - 17:47 #5
Hvis du vil have dato er DATE iøvrigt nok - DATETIME er kun hvis der også skal være tid.
Avatar billede arne_v Ekspert
30. juli 2005 - 17:47 #6
lige præcis
Avatar billede phineas_phreak Nybegynder
30. juli 2005 - 18:42 #7
Så fik jeg taget mig sammen løsninger var som følger:

update tabel set nydato=concat(right(dato,4),'-',mid(dato,4,2),'-',left(dato,2))

og derefter

update tabel set dato = UNIX_TIMESTAMP(nydato)

Men ellers tak for hjælpen, vi ka dele point i porten hvis det er i orden :)
Avatar billede arne_v Ekspert
30. juli 2005 - 18:49 #8
helt iorden - jeg har jo ikke bidraget ret meget til din løsning

jeg forstår stadig ikke hvorfor du vil bruge UNIX_TIMESTAMP
Avatar billede phineas_phreak Nybegynder
30. juli 2005 - 23:12 #9
jeg bruger det sammen med noget php, nu ved jeg ikke om man ka gøre det samme med DATE eller DATETIME, men jeg ved at med timestamp ka jeg selv styre outputtet på datoen med php's date function.

Men ellers tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester