Hej
på min dator hemma (mysql, asp) så kan jag från ett formulär lägga upp en kommentar, där datum och tid står: 2008-08-23 16:19:10
Men när jag slänger upp allt till webservern så skrivs aldrig datumet ut. Vad kan vara fel? Jag har samma db där som hemma.
Datum i MySql
14 svar · 938 visningar · startad av snowcat
Det beror på hur koden ser ut.
trodde att det kunde vara någon skillnad på en server än på min dator - eftersom det är samma kod jag använder.
här är koden:
<% If Request.QueryString("add") = "yes" Then Set Connect = server.createobject("ADODB.connection")
Connect.Open Session("Connection_String")
namn = request.Form("namn")
kommentar = request.Form("kommentar")
slottid = request.Form("slottid")
strSQL = "INSERT INTO kommentarer (namn,kommentar,slottid,datum)
VALUES('"& Request.Form("namn") &"','"& Request.Form("kommentar") &"','"& Request.Form("slottid") &"','" & now & "')"
Connect.Execute(strSQL)
Connect.Close
end if
Response.Redirect "slottdetalj.asp?id=" & request.Form("slottid") %>
Kan lägga till att i databasen vid Loopia skrivs det 0000-00-00 00:00:00
medan hemma 2008-08-23 16:46:25
Ja, du ska inte avnvända now() inkonkatenerat från asp - då kan man aldrig veta att man får rätt datumformat - det skiljer sig ju beroende på hur servern är installerad. Du ska använda något inbyggt i sql - t.ex. current_timestamp. ex:
... ,'"& Request.Form("slottid") &"', current_timestamp ...
Se också gärna till att vi kan läsa din kod lite lättare.
mvh
När jag lägger in kod här och sätter kodmärken runt så blir det så där lång sträng bara. Fixade till det lite nu - bättre?
Hur skulle
strSQL = "INSERT INTO kommentarer (namn,kommentar,slottid,datum)
VALUES('"& Request.Form("namn") &"','"& Request.Form ("kommentar") &"','"& Request.Form("slottid") &"','"& now & "')"
se ut med current_timestamp? Jag har försökt satt in det men får bara en massa fel. Det går visst inte bara att byta ut "now" mot "current_timestamp" :p
strSQL = "INSERT INTO kommentarer
(namn,kommentar,slottid,datum)
VALUES('"& Request.Form("namn") &"','"& Request.Form
("kommentar") &"','"& Request.Form("slottid")
&"', current_timestamp)"
alltså: byt bara '"& now & "' mot current_timestamp i din kod.
Jättetack :-) Det funkade ju med en gång.
Om jag nu får vara lite krånglig, är det svårt att få bort sekunderna?
2008-08-23 16:46:25
Det skulle ju räcka med 2008-08-23 - 16:46
och kanske ett - mellan datum och tid, fast det är nog överkurs kan jag tro?
Jag föreslår att du siktar på att ta bort sekunderna i presentationen - men nej, det är ingen stor pilsner. :)
hmm ok - får klura på den ikväll då - kör ju nu med <%=RecSet("datum")%>
Fast du som verkar ha koll på saker, vet du om man kan ha två "onSubmit" i ett formulär?
Jag har två olika saker som jag vill ha utfört men klarar inte av att slå ihop två olika skript. Fast nu är vi nog i fel forum :(
När det gäller sekunderna i datumet så har jag för mig att funktionen som gör så att man bara tar ut en del av en sträng heter Mid, men det är 18 år sen jag skrev i det där språket sist (Basic). Men kanske typ; <%=Mid(RecSet("datum"), 1, 16)%>
Du kan inte ha två onSubmit, men du kan skriva flera saker i samma onSubmit. Bara att sätta semikolon emellan.
... så hur skulle man kunna sätta ihop de här två?
onSubmit="return wordFilter('kommentarer',['namn','kommentar']);">
och
onsubmit="return(CheckFields());"
Du kan visserligen sätta ihop dina två onsubmit-grejer, men vad vill du returnera?
Sedan ska man inte, jag repeterar: inte, använda strängfunktioner som mid() för att ta ut delar (eller o-delar!) av datum. Använd de datumfunktioner som finns i vbscript istället - eller en kombination av dessa i en egen formateringsfunktion om man så vill.
Man kan bara ha en return - därav min fråga i ovanstående inlägg. Vill du returnera true om båda funktionerna i sig returnerar true?
onSubmit="return wordFilter('kommentarer',['namn','kommentar']) && (CheckFields());">
Bah, jag som är trött. @nders har rätt...