Datetime i SQL Serveren har jeg selv haft en del undren over. Den forklaring jeg er kommet frem til er, at hvis du bruger Enterprise Manager til at indsætte din tid, så vil du få påhæftet en default dato, der hedder 1899-12-30, hvilket er dennes startdato. Hvis du derimod bruger et andet program til at indsætte din tid, som f.eks. Query Analyser, så vil du få startdatoen 1900-01-01.
Det er dybt mærkeligt at de har valgt at bruge to forskellige startdatoer, men sådan lader det til at være.
Du kan evt. selv prøve at se hvad jeg mener ved at lave følgende test:
I QUERY ANALYSER: ----------------- if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DatoProblem]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[DatoProblem] GO
CREATE TABLE [dbo].[DatoProblem] ( [Dato] [datetime] NOT NULL ) ON [PRIMARY] GO
INSERT INTO dbo.DatoProblem (Dato) VALUES ('18:30:00')
SELECT Dato FROM dbo.DatoProblem ----------------- Her skulle du gerne få outputtet "1900-01-01 18:30:00.000"
Hvis du derefter hopper over i Enterprise Manager og åbner tabellen og manuelt indsætter værdien "19:30:00" og opdaterer tabellen, så vil du have følgende to rækker.
01-01-1900 18:30:00 19:30:00
Hopper du så tilbage til Query Analyser og selevter tabellen igen SELECT Dato FROM dbo.DatoProblem får du følgende resultat:
Jeg er ikke stødt på nogen løsning på problemet - ud over at man selv må indsætte dato sammmen med tiden.
Synes godt om
Ny brugerNybegynder
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.