/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
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

Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste