op- og indsætning af tid og dato i MySQL

Tags:    databaser

jeg skal have sat nogle datoer ind i min db...

Hvilken datatype er det smartest at sætte databasen op i? Timestamp, datetime eller hvad?

jeg har to colls hvor der skal være plads til dato (ptime & odate)...
jeg har sat dem begge til Timestamp...

Når jeg så sætter den til at indsætte tiden i "odate" så bliver den bare fyldt ud men nuller og det rigtige bliver sat ind i "ptime"??? ("ptime" står før "odate" i tabellen hvis det har noget at sige)
min kode ser således ud (med tilfældig input ;) )

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=userdb; UID=root; PWD=;"


strSQL = "Insert into user ("

strSQL = strSQL & "username, "
strSQL = strSQL & "password, "
strSQL = strSQL & "name, "
strSQL = strSQL & "lastname, "
strSQL = strSQL & "email, "
strSQL = strSQL & "sex, "
strSQL = strSQL & "pnum, "
strSQL = strSQL & "odate) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'GetWell', "
strSQL = strSQL & "'larsnymand', "
strSQL = strSQL & "'Lars', "
strSQL = strSQL & "'Nymand', "
strSQL = strSQL & "'LarsNymand@hotmail.com', "
strSQL = strSQL & "'Mand', "
strSQL = strSQL & "4000, "
strSQL = strSQL & "'" & now() & "')"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>

På forhånd tak!

vh Lars

[Redigeret d. 18/08-04 16:58:29 af Lars Nymand]



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato


Når jeg så sætter den til at indsætte tiden i "odate" så bliver den bare fyldt ud men nuller og det rigtige bliver sat ind i "ptime"??? ("ptime" står før "odate" i tabellen hvis det har noget at sige)
min kode ser således ud (med tilfældig input ;) )

-----

strSQL = strSQL & "pnum, "
strSQL = strSQL & "odate) "

strSQL = strSQL & "'" & now() & "')"


Jeg har klippet lidt i dit indlæg, håber det giver mening;

Du henviser til en kolonne ved navn ptime men i dit sql statement vil du indsætte værdien i pnum.

Da pnum ikke findes? vil jeg tro at den "glemmes" og odate får pnums plads hvilket efterlader ptime som ikke er angivet på odates plads, men det er bare spekulationer.

Jeg bruger personligt datetime.

[Redigeret d. 23/08-04 14:44:54 af Emil Gruno]



jeg har nu for at tjekke hvad det er, lavet en db med kun en colone: "odate" den er sat til datetime.

Min kode ser sådanne ud:

strSQL = "Insert into user ("

strSQL = strSQL & "odate) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & now & "')"

Conn.Execute(strSQL)

det der sker når jeg kører den kode, så opretter den en ny række, men sætter ikke nogen værdi ind?
Der står bare"00-00-00 00:00:00"...
hvordan kan det være?



jeg har nu for at tjekke hvad det er, lavet en db med kun en colone: "odate" den er sat til datetime.

Min kode ser sådanne ud:

strSQL = "Insert into user ("

strSQL = strSQL & "odate) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & now & "')"

Conn.Execute(strSQL)

det der sker når jeg kører den kode, så opretter den en ny række, men sætter ikke nogen værdi ind?
Der står bare"00-00-00 00:00:00"...
hvordan kan det være?


hvordan ser din Sql string ud hvis du skriver den ud til skærmen?




Når jeg skriver feltet ud til skærmen viser den intet...
De står ikke engang 00-00-00 00:00:00



t