Toon posts:

[ASP]Datum doet raar

Pagina: 1
Acties:
  • 50 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo allemaal,

Ik heb hier vorige week een script geschreven en dacht dat het goed werkte, maar dat doet het dus niet, sinds vandaag doet de datum raar. Hij slaat de datum in de database namelijk op als 5-1-2006 in plaats van 1-5-2006. Hij heeft het de laatste 3 dagen van april prima gedaan tot nu toe.

Het vreemde is als ik Response.Write date() doe dan geeft hij gewoon 1-5-06 als datum, maar zodra ik hem naar de access database wegschrijf maakt hij er 5-1-06 van.

Ik heb in Access ook al de datum ingesteld naar dd-mm-jjjj maar dit mocht ook niet baten hij blijft er gewoon 5-1-06 van maken.

Als ik de datum in Access met date() forceer dan ziet hij met de sql vraag query de datum gewoon niet en blijft hij gewoon datums inserten.

Wat kan het probleem zijn?

De Code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<%
    session.lcid=1043
    'bestand = Request.ServerVariables("QUERY_STRING")
    bestand = Request.QueryString("ID")
    datum = FormatDateTime(date(), 2)
    ip = Request.ServerVariables("REMOTE_ADDR")
    mytime = time()
    mytime_later = DateAdd("s", 30, mytime)
    
    stats = "SELECT * FROM INTRANET_Statistieken WHERE Bestand='" & bestand & "' AND IP = '"& ip & "' AND Datum=#" & datum & "# ORDER BY Tijd DESC"
    Set RS18 = Conn.Execute(stats)
    
    HuidigeTijd = Time()
    DBTime = RS18("Tijd")
    DBTime_Future = DateAdd("s", 30, DBTime)
    
    If DBTime_Future < HuidigeTijd Then
    
    sql4 = "INSERT INTO INTRANET_Statistieken ([Bestand], [Datum], [Tijd], [IP]) VALUES ('" & bestand & "', #" & datum & "#, #" & mytime & "#, '" & ip & "')"
    Set RS = Conn.Execute(sql4)
    
    Else
    
    Response.Write ".."
    
    End If
    
    Response.Write datum
%>

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23:40
Als je toevoeg in de database kun je het beste een yyyy-MM-dd hh:mm:ss formaat aanhouden. Dat is een standaard formaat, en Access ( en ander db's ) zal dan geen landinstellingen toepassen.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:33
De manier waarop je datum opgeslagen wordt, doet er toch niet zozeer toe ? De DB zal er wel voor zorgen dat hij goed opgeslagen wordt; het is de presentatie-laag die er moet voor zorgen dat de datum getoond wordt volgens het formaat dat de gebruiker wenst.
Echter, ik zie wel dat je string concatenation gebruikt om je queries te bouwen; dat kan problemen opleveren mbt security, quotes in strings, en ook met datums. Daarom is het beter om parametrized queries te gebruiken.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-02 14:52

gorgi_19

Kruimeltjes zijn weer op :9

Net zoals ik vorige keer al opmerkte; waarom wil je in ASP de datum bepalen? MS Access kent de Now() en DateAdd() functie. Kans op fouten is daardoor nihil; heb je het hele probleem ook niet.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:30

TeeDee

CQB 241

En anders, wat RobIII in één van je andere topics, de ISO notatie: yyyymmdd.

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
gorgi_19 schreef op maandag 01 mei 2006 @ 10:11:
Net zoals ik vorige keer al opmerkte; waarom wil je in ASP de datum bepalen? MS Access kent de Now() en DateAdd() functie. Kans op fouten is daardoor nihil; heb je het hele probleem ook niet.
Oke, ik gebruik nu Now() om de query te inserten en dit werkt inderdaad :)
Alleen werkt het uitlezen nog steeds niet, want als ik dat namelijk probeer geeft hij nog steeds geen .. en blijft hij gewoon de statistieken inserten

De code die huidig is: (ik heb al diversen opties geprobeerd)

code:
1
stats = "SELECT * FROM INTRANET_Statistieken WHERE Bestand='" & bestand & "' AND IP = '"& ip & "' AND Datum='Now()' ORDER BY Tijd DESC"

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Zelf een functie schrijven die de datum omsmurft naar de door jouw gewenste string.

Verwijderd

Topicstarter
Gert schreef op maandag 01 mei 2006 @ 10:30:
Zelf een functie schrijven die de datum omsmurft naar de door jouw gewenste string.
Dat heb ik gedaan maar dat werkt niet:

Ik heb het volgende gedaan:
code:
1
2
3
4
5
<%
    session.lcid=1043
    SetLocale(1043)
        datum = date()
%>


Als ik nu Response.Write datum doe geeft hij gewoon 01-05-06 ook in de query, maar toch leest hij hem om een of andere vage reden niet goed in.

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
VBScript:
1
2
3
Function DateToString(date) 
DateToString = Month(date) & "-" & Daydate) & "-" & Year(date)
End Function

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:33
Tja.... je moet wel een beetje logisch nadenken he; waarom zet je quotes rond een functie-aanroep in je query ?
Waarom ga je eens niet kijken naar wat parametrized queries zijn, en wat ze kunnen doen voor jou.

Misschien is het handig om eens een paar tutorials door te nemen:
http://www.asptutorial.info/
http://www.webwizguide.info/asp/tutorials/default.asp
http://www.aspwebpro.com/tutorials.asp

Ipv te zeggen: ik heb al alle opties geprobeerd, kan je ook actief nagaan waarom er iets niet werkt of niet niet doet wat het moet doen, ipv in het wilde weg te schieten en te gaan gokken.
Print je query uit naar het scherm ipv hem uit te voeren, bekijk hoe die query eruitziet, probeer 'm eens zo uit te voeren, etc...

Men wil je hier best helpen, maar je moet dan zelf ook wel wat moeite willen doen, en zelf ook ff nadenken natuurlijk.

[ Voor 8% gewijzigd door whoami op 01-05-2006 10:43 ]

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.