Toon posts:

[Access SQL] Datum vergelijking / conversie

Pagina: 1
Acties:
  • 261 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb van alles gebrobeerd, access help, search, msdn, boeken, aantekeningen alles... maar niet het antwoord kunnen vinden.
Ik heb een Datum kolom in een MS Access database met veldtype Datum/tijd.
De notatie is als volgt: 14-8-2002 17:45:52

Nu wil ik met een SQL query het volgende berijken:
Geef het aantal verschillende IP's van vandaag!

Dat doe ik als volgt:
Dim dag, maand, jaar, vandaag, beginvandaag, eindvandaag

jaar = year(now)
maand = month(now)
dag = day(now)

vandaag = dag & "-" & maand & "-" & jaar
beginvandaag = vandaag & " 0:00:00"
eindvandaag = vandaag & " 23:59:59"

qryVandaagVerschillendeIPs = "SELECT COUNT(*) AS Verschillende " _
& "FROM (SELECT DISTINCT IP FROM tblLogVisitors) " _
& "WHERE Datum BETWEEN '" & beginvandaag & "' AND '" & eindvandaag & "'"
Maar hij geeft deze error melding:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/valadiri/show_statistieken.asp, line 98
Ook dit is niet gelukt:
qryVandaagVerschillendeIPs = "SELECT COUNT(*) AS Verschillende " _
& "FROM (SELECT DISTINCT IP FROM tblLogVisitors) " _
& "WHERE Date(Datum) '" & vandaag & "'"
bijbehorende error melding:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Wrong number of arguments used with function in query expression 'Date(Datum) = '14-8-2002''.

/valadiri/show_statistieken.asp, line 99
Kan iemand mij uitleggen hoe ik dit wel kan doen?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-12 14:18

gorgi_19

Kruimeltjes zijn weer op :9

Simpel gezegd: Je query klopt niet. Zou je ook de informatie met behulp van
code:
1
Response.Write qryVandaagVerschillendeIPs


kunnen posten

Verder is volgens mij: 'Date(Datum) = '14-8-2002'' geen geldig datumformaat, maar moeten hier # bij.

Ander vraagje: Wat vandaag is, kan Access toch ook oplossen door middel van de now() functie?
Je moet alleen de datum omzetten / casten / convert naar een datum van date/time

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Oeps foutje.... De query klopt inderdaad niet!
Syntaxisties gezien is hij zo wel kloppende:
code:
1
2
3
4
SELECT COUNT(*) AS Verschillende
FROM (SELECT DISTINCT IP
      FROM tblLogVisitors
      WHERE Datum = ??? )

En met dat # moet het lukken.
Dit is hem geworden en hij werkt!!!!!!!!!!!
code:
1
2
3
4
SELECT COUNT(*) AS Verschillende
FROM (SELECT DISTINCT IP
      FROM tblLogVisitors
      WHERE Datum BETWEEN #14-8-2002 0:00:00# AND #14-8-2002 23:59:59#)

Dank je gorgi_19 voor de hulp!!!!