Jesper skrev:
> Så nu har jeg det hele importeret, blot er disse to kolonner
> strings i stedet for smalldatetime.
Fint. Du skal nu afgøre om du fortsat vil have to felter (et til
dato og et til tid) eller du vil samle oplysningen i ét felt (du
kan til enhver tid trække enkeltoplysningerne ud af det samlede
felt).
> Jeg har kigget på CONVERT og CAST kommandoerne i BOL og det
> ser ud til jeg skal bruge noget i stil med
> USE mintabel SELECT CONVERT(smalldatetime, title) FROM
> mintabel
Det er lidt derhenad - men ikke helt nok.
Du skal bruge CONVERT, men CONVERT skal have tre argumenter når der
er tale om datoer. Første argument er den datatype du vil
konvertere til (datetime eller smalldatetime), andet argument er
det felt du vil konvertere (altså det felt der indeholder datoen
som tekst), og tredje argument fortæller hvordan datoen skal læses.
I BOL er der en lang oversigt over formatkoderne til datoer - jeg
plejer at bruge 5 og 105, der svarer til hhv. dd-mm-yy og dd-mm-
yyyy. Du skal bruge et format der passer til den tekstudgave du har
liggende i feltet.
I første omgang er det en god ide bare at lave en select - fx som
her:
SELECT tekstdato, CONVERT(datetime, tekstdato, 105) as datDato
FROM dintabel
Det vil give dig tekstværdien og den konverterede værdi ved siden
af hinanden. datDato vil formentlig være i formatet yyyy-mm-dd
hh:mm:ss.mmm - altså svarende til format 21 i convert-oversigten.
Hvis det er forvirrende, kan man evt. konvertere tilbage (med et
dobbelt kald til CONVERT).
Hvis du får de rigtige datoer ud med CONVERT, kan du gemme dem i et
datofelt. Du skal oprette et nyt felt i databasen, som du så kan
opdatere ved hjælp af det gamle:
UPDATE dintabel
SET nydato = CONVERT(datetime, tekstdato, 105)
Hvis opdateringen går godt, kan du så slette tekstdatofeltet.
> Der får jeg at vide at "the query analyzer does not support the
> USE construct".
Det lyder umiddelbart mærkeligt - men det betyder ikke det store.
USE-kommandoen er kun nødvendig hvis man arbejder med flere
databaser i samme script (argumentet til USE er i øvrigt navnet på
en database - ikke en tabel).
Hvis du har flere databaser til rådighed, kan du tjekke øverst i
query analyser om du står i den rigtige (der er en dropdown-liste
med tilgængelige databaser).
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html