Väldigt skummt tid/datum problem mot mssql

Databaser & SQL

6 svar · 199 visningar · startad av erka

Medlem sedan dec. 19996 522 inlägg
Trådstart#1

Jag försöker göra en insert mot en sqlserver2000. Fältet är av datetime och när jag skriver ut sqlsattsen blir det

INSERT INTO REPLIES (TopicId,ReplieBy, ReplieMessage, ReplieDate, ReplieTime) VALUES (8, 'Erik Forsberg', 'sdfsdfsdf', '2001-10-08', '14:39')

Men när jag öppnar tabellen och kikar så står det 1900-01-01 14:39 i det sissta fältet, replietime.

Vad i h**** beror detta på, har prövat hur mycket som helst

Medlem sedan dec. 200012 464 inlägg
#2

Det beror på att sql-server inte har någon speciell time datatyp, det finns bara datetime.
Om man inte anger ett giltigt datum så får man automatiskt 1900-01-01

Medlem sedan dec. 19996 522 inlägg
#3

Hur ska man göra för att sätta in enbart tiden då ?

Medlem sedan dec. 200012 464 inlägg
#4

jag skulle ha ett datetime fält och sedan dela upp det (med hjälp av convert i SQL) eller formatdatetime i VB

convert:
http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28000409

Medlem sedan dec. 19996 522 inlägg
#5

Du menar att jag ska göra det när jag plockar ut informationen sen eller för använder jag FormatDateTime(time,4) i inserten så blir det fortfarande 1900-01-01 sen tiden.

Convert får jag bara att fungera på en select satts..vad gör man för fel ?

Medlem sedan dec. 200012 464 inlägg
#6

Jo, bara när du hämtar data.
Att det lagras ett datum också kommer du aldrig ifrån.

Av samma anledning är det irrelevant att använda convert vid insert.

Medlem sedan dec. 19996 522 inlägg
#7

Tackar, nu är jag klokare än vad jag var i morse :)

263 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)