|
| Problem m. indsæt af datetime i SQL-server Fra : Torben Jensen |
Dato : 14-03-04 23:10 |
|
Hej NG!
Jeg har forgæves forsøgt at indsætte et datetime object i MS sql-server2000.
Jeg gør følgende:
INSERT INTO tblTest (datotid) values (14-03-2004 22:55:23)
Hvis jeg validerer udtrykket med sql-server, så får jeg ingen fejl, men
eksekverer jeg udtrykket, får jeg at vide at der er en fejl omkring 22 -
altså første parameter i klokkeslettet.
Sætter jeg en default value på feltet og her bruger funktionen getDate, så
får jeg et datetime object som for mig at se er 100% identisk med det jeg
prøver at skrive ned i tabellen.
Hvad gør jeg forkert?
På forhånd tak for hjælpen.
M.v.h.
Torben Jensen
| |
Jens Gyldenkærne Cla~ (14-03-2004)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 14-03-04 23:39 |
|
Torben Jensen skrev:
> Jeg har forgæves forsøgt at indsætte et datetime object i MS
> sql-server2000.
Slå op i onlinehjælpen (BOL) under CAST og CONVERT.
Speciel CONVERT er praktisk ved datoværdier.
> INSERT INTO tblTest (datotid) values (14-03-2004 22:55:23)
Prøv med
INSERT INTO tblTest (datotid)
CONVERT (datetime, '14-03-2004 22:55:21', 105)
> Sætter jeg en default value på feltet og her bruger funktionen
> getDate, så får jeg et datetime object som for mig at se er
> 100% identisk med det jeg prøver at skrive ned i tabellen.
Hvis du med 100 % identisk mener samme format, skal du tænke på at
det datoformat MSSQL leverer som standard i en forespørgsel (select
datoværdi) og det datoformat den forventer (insert datoværdi) ikke
nødvendigvis er det samme. Med CONVERT kan man eksplicit erklære
det format en given datoværdi skal opfattes som - det kan varmt
anbefales.
Hvis du (mod forventning) mener samme værdi - altså at du i
virkeligheden skal indsætte dags dato - så er det jo langt lettere
at definere getDate() som standardværdi (som du har gjort i forsøg
2) eller at bruge getDate() i INSERT-forespørgslen.
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information
| |
|
|