[ASP SQL Access] Select * Where datum LIKE ...?

Pagina: 1
Acties:

  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

Topicstarter
Search op GoT gebruikt, met Google gezocht, op 4Guys, ASP101, W3Schools, MSKB, enz..

Ik heb een Access 2002-db met namen en geboortedata van mensen erin. Met ASP maak ik een verjaardagskalender. Ik kan nu een eeuwigdurende kalender in ASP laten genereren: elke maand van elk jaar in een aparte tabel, met weekdagen en de nummers van de dagen van de maand op de goeie plaatsen.

Probleem is de SQL-query die ik moet gebruiken. In de db staan alleen geboortedata, in het universele formaat "18-apr-1977" (zonder de aanhalingstekens).

De SQL-query moet de namen selecteren waar de datum de huidige maand bevat, dus zoiets:
code:
1
SELECT naam FROM persinfo WHERE gebdat LIKE 'apr'

enne.. dat werkt natuurlijk niet :( Ik heb deze varianten geprobeerd:
code:
1
2
3
4
5
SELECT naam FROM persinfo WHERE datum LIKE 'apr'
SELECT naam FROM persinfo WHERE datum LIKE '%apr%'
SELECT naam FROM persinfo WHERE datum LIKE #'apr'#
SELECT naam FROM persinfo WHERE datum LIKE #'%apr%'#
SELECT naam FROM persinfo WHERE datum LIKE #%'apr'%#

..en alle andere combinaties die ik met #, ' en % kon bedenken. Ook heb ik "apr" door "4" vervangen en door "04".

Ik krijg het echter niet voor elkaar.. Ik wil liever geen extra tabel met verjaardagen in mijn db maken, omdat ik dan dingen dubbel moet gaan invullen en de kans op fouten toeneemt. Bovendien lijkt het mij zeer goed mogelijk om iemands verjaardag uit haar/zijn geboortedatum af te leiden!

Hoe moet ik dit aanpakken?

Bloed, zweet & koffie


  • brokenp
  • Registratie: December 2001
  • Laatst online: 09:14
je moet wel sterretje gebruiken volgend mij
SELECT naam FROM persinfo WHERE datum LIKE '*apr*'

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

SELECT naam FROM persinfo WHERE month(gebdat) = month(now)

Today's subliminal thought is:


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

Topicstarter
De wildcat is geen asterisk ( * ) maar procent ( % ).
Ik heb de oplossing trouwens gevonden... een beetje een rare oplossing, maar het werkt wel. Het unieke kenmerk van de maand in mijn geval is nl. dattie altijd in het midden staat. Moet je wel ff de locale op NL zetten (1033).

Dit is de query die ik nu gebruik:
code:
1
SELECT naam FROM persinfo WHERE gebdat LIKE '%-4-%'

Of, in mijn ASP-code:
code:
1
SELECT naam FROM persinfo WHERE gebdat LIKE '%-" & maandnr & "-%'

Bloed, zweet & koffie


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Vooral niet luisteren naar een persoon die er verstand van heeft villenin.

Of niet soms Annie? :P

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • whoami
  • Registratie: December 2000
  • Nu online
Een LIKE kun je enkel doen op een 'string-veld' (VARCHAR, CHAR, ...)

https://fgheysels.github.io/


Verwijderd

Op zondag 14 april 2002 20:48 schreef Vilenin het volgende:
Search op GoT gebruikt, met Google gezocht, op 4Guys, ASP101, W3Schools, MSKB, enz..

Ik heb een Access 2002-db met namen en geboortedata van mensen erin. Met ASP maak ik een verjaardagskalender. Ik kan nu een eeuwigdurende kalender in ASP laten genereren: elke maand van elk jaar in een aparte tabel, met weekdagen en de nummers van de dagen van de maand op de goeie plaatsen.

Probleem is de SQL-query die ik moet gebruiken. In de db staan alleen geboortedata, in het universele formaat "18-apr-1977" (zonder de aanhalingstekens).

De SQL-query moet de namen selecteren waar de datum de huidige maand bevat, dus zoiets:
code:
1
SELECT naam FROM persinfo WHERE gebdat LIKE 'apr'

enne.. dat werkt natuurlijk niet :( Ik heb deze varianten geprobeerd:
code:
1
2
3
4
5
SELECT naam FROM persinfo WHERE datum LIKE 'apr'
SELECT naam FROM persinfo WHERE datum LIKE '%apr%'
SELECT naam FROM persinfo WHERE datum LIKE #'apr'#
SELECT naam FROM persinfo WHERE datum LIKE #'%apr%'#
SELECT naam FROM persinfo WHERE datum LIKE #%'apr'%#

..en alle andere combinaties die ik met #, ' en % kon bedenken. Ook heb ik "apr" door "4" vervangen en door "04".

Ik krijg het echter niet voor elkaar.. Ik wil liever geen extra tabel met verjaardagen in mijn db maken, omdat ik dan dingen dubbel moet gaan invullen en de kans op fouten toeneemt. Bovendien lijkt het mij zeer goed mogelijk om iemands verjaardag uit haar/zijn geboortedatum af te leiden!

Hoe moet ik dit aanpakken?
Mischien zo:
"Select naam FROM persinfo WHERE datum.[value]=" apr
"Select naam FROM persinfo WHERE datum=" apr

Anders ben ik gewoon maar asp noobie :D

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09-09 16:14

Crazy D

I think we should take a look.

|:(
1. Als je een datetime field gebruikt is het antwoord al gegeven
2. Als het geen datetime field is, maak er een datetime field van en goto 1.

Exact expert nodig?


Verwijderd

SELECT naam FROM persinfo WHERE {fn MONTH(gebdat)} = 3

Doe de rest gewoon in je code

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Op maandag 15 april 2002 00:12 schreef dusty het volgende:
Vooral niet luisteren naar een persoon die er verstand van heeft villenin.

Of niet soms Annie? :P
Verstand van access?
Dat neem je terug. Ik wil niks te maken hebben met dat pakket :P
Op maandag 15 april 2002 09:51 schreef Crazy_D het volgende:
|:(
1. Als je een datetime field gebruikt is het antwoord al gegeven
2. Als het geen datetime field is, maak er een datetime field van en goto 1.
*LOL* :D

Today's subliminal thought is:


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

Topicstarter
Op maandag 15 april 2002 00:12 schreef dusty het volgende:
Vooral niet luisteren naar een persoon die er verstand van heeft villenin.

Of niet soms Annie? :P
Sorry, ik had Annies reactie nog niet gezien toen ik mijn reply plaatste...

Ik heb het trouwens weer anders opgelost, om problemen bij alternatieve system locales te voorkomen. In plaats van één datum-kolom voor de geboortedatum heb ik drie numerieke kolommen gemaakt: gebdat_dag; gebdat_maand; en gebdat_jaar. Op die manier kan ik wat meer met de geboortedata en is het opsplitsen ervan een stuk makkelijker. Ook het evt. invoeren in de db via ASP is makkelijker.

Bloed, zweet & koffie


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Op dinsdag 16 april 2002 13:55 schreef Vilenin het volgende:
[knip]
Op die manier kan ik wat meer met de geboortedata en is het opsplitsen ervan een stuk makkelijker.
Alleen zullen datum "bewerkingen" wat moeilijker gaan, bijvoorbeeld sorteren of specifieke date-functions als het optellen van een bepaalde waarde bij je datum.
Waarbij "moeilijker" varieert van "(bijna) onmogelijk" tot "met een beetje creativiteit is het alsnog te doen" ;)

Today's subliminal thought is:


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Creativiteit kan je niet worden ontzegd, maar ik zou het toch maar weer terug veranderen in een date(time) kolom en de nette date-functies gebruiken om de maand te selecteren.
Pagina: 1