Toon posts:

[ASP/Acces]Datumveld vergelijken met huidige datum

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

Verwijderd

Topicstarter
Ik wil met ASP uit een Acces database het datumveld Geboortedatum vergelijken met de huidige datum. Als dag en maand overeenkomen moet er een actie uitgevoerd worden. Oftwel: ik wil de jarigen uit de database op een pagina laten zien, zoals hier.
Ik neem aan dat dit het makkelijkst gaat met DatePart, maar ik kom er maar niet uit hoe de query precies moet luiden.
Iemand een idee?
TIA

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Je zou inderdaad gebruik kunnen maken van de functie Datepart() om de dag en maand te extraheren. Wat je ook kan doen is gebruik te maken van de Day() en Month() functie, die exact hetzelfde doen.
ASP:
1
2
3
4
Dim datum, dag, maand
datum = CDate("25/11/2003")
dag = Day(datum)
maand = Month(datum)

Of
ASP:
1
2
3
4
Dim datum, dag, maand
datum = CDate("25/11/2003")
dag = Datepart("d", datum)
maand = Datepart("m", datum)


Als het in je query moet (wat uiteraard de voorkeur heeft ;) ) dan kan je even kijken naar de SQL functie BETWEEN, waarmee je alle records tussen een bepaald tijdsinterval kan retourneren.

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • whoami
  • Registratie: December 2000
  • Laatst online: 14:31
Als je gebruik maakt van de Day(), Month(), etc... functies dan kan een eventuele index die op het veld geboortedatum ligt niet gebruikt worden.
Het is dus beter dat je zo werkt:
code:
1
2
select * from tabel
where geb_datum >= eendatum and geb_datum < eendatum+1


Trouwens, Access heeft toch een keyword waarmee je enkel de huidige datum kunt ophalen (zonder tijd-part dus), en je hebt toch ook de mogelijkheid om de tijd niet te bewaren in je DB ?

https://fgheysels.github.io/


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
Now
Date
DateDiff
etc.

Maar een query met daarin een Between lijkt me handiger

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.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

Trouwens, Access heeft toch een keyword waarmee je enkel de huidige datum kunt ophalen (zonder tijd-part dus), en je hebt toch ook de mogelijkheid om de tijd niet te bewaren in je DB ?
En anders wordt de tijd toch op 00:00 uur gezet.. :)

Maar in het algemeen; asp is hierbij niet nodig; buur in MS Access / SQL is dit goed op te lossen. Scheelt ook weer culture-specific settings.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Bedankt voor jullie bijdragen. Ik zie nu dat ik misschien niet helemaal duidelijk ben geweest in mijn probleemomschrijving. Het 'probleem' is dat ik de steeds wijzigende database krijg aangeleverd en dus liever de datumextractie met asp uit laat voeren ipv in de database zelf.

Hoe ik de maand en dag uit de huidige datum krijg is mij nu duidelijk. Alleen lukt het me niet om de extractie van de dag en maand uit het datumveld op de juiste manier te formuleren. Gewoon ipv Date de veldnaam Geboortedatum gebruiken?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

Erhm.. Je creert toch een SQL statement in ASP? :? Dan blijf je toch sowieso in ASP? 't is alleen de vraag of je voor de huidige datum een SQL functie gebruikt of met ASP gaat klooien.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
mmm, ben toch toevallig bezig met een intranet waarin een jarigen overzichtje zit...

ASP:
1
2
3
4
5
6
7
8
SELECT     TOP 100 PERCENT personeelID, voornaam, voorletters, tussenvoegsel, 
achternaam, datum_geboorte, DATEDIFF(yy, datum_geboorte, GETDATE()) 
                      AS leeftijd
FROM         dbo.tbl_personeel
WHERE     (DATEPART(dy, datum_geboorte) BETWEEN 
DATEPART(dy, DATEADD(d, - 2, GETDATE())) AND 
DATEPART(dy, DATEADD(d, 2, GETDATE())))
ORDER BY DATEPART(dy, datum_geboorte)


haalt eergister t/m overmorgen op...

[ Voor 1% gewijzigd door faabman op 25-11-2003 23:10 . Reden: toch maar ff een return of wat toegevoegd... ]

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

Ik weet niet of MS Access Getdate() kent; ik denk dat je die moet vervangen door now()

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
gorgi_19 schreef op 25 november 2003 @ 23:12:
Ik weet niet of MS Access Getdate() kent; ik denk dat je die moet vervangen door now()
true, vervangen door now() of date() :) :)

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!

Pagina: 1