On Sun, 13 Nov 2005 21:01:30 +0100, "Aagaard" <nomail@nomail.inv>
wrote:
>>>Jeg trækker følgende data fra en MySql db:
>>>15.10.2005 // en indtastet dato
>> Ud over den løftede pegefinger med det uhensigtsmæssige dataformat kan
>> du kigge i manualen om mulige streng-funktioner:
>>
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
>Jeg er klar over at datoen bør være i et datofelt - ikke i et varchar felt,
>men hvordan kan jeg ændre det?
Spørgsmålet er egentligt et SQL-relateret spørgsmål, så
dk.edb.database er nok en passende nyhedsgruppe til en anden gang -
der sidder også flere kloge hoveder
>Jeg har prøvet at ændre feltet til datofelt, men det ændrede samtlige
>indtastede datoer til ukendelighed.
>Alle datoer er indtastet som dd.mm.yyyy eller d.m.yyyy (uden 0 foran 1-9).
Det er kun hvis datoerne "ligner" datoer i MySQLs format (yyyy-mm-dd),
at de kan konverteres uden videre.
En mulighed for at konvertere datoerne er fx:
UPDATE tabel
SET datofelt = CONCAT_WS(
'-',
SUBSTRING_INDEX(datofelt,'.',-1),
MID(SUBSTRING_INDEX(datofelt,'.',2),LOCATE('.',datofelt)+1,2),
SUBSTRING_INDEX(datofelt,'.',1)
);
... og så derefter konvertere:
ALTER TABLE tabel CHANGE datofelt datofelt DATE;
(det kan måske laves smartere, men det virker om ikke andet)
--
- Peter Brodersen