Avatar billede [tpl]foxy Nybegynder
06. april 2006 - 07:43 Der er 6 kommentarer og
2 løsninger

select from database where month+day>=date()

Hej

Jeg er i øjeblikket ved at lave en fødselsdagsoversigt. Datoerne ligger i databasen som eksempelvis "20-03-1985". Jeg ved at med denne kode, vises datoerne der ligger fra dags dato og fremover:

Sql = "Select * from T_gaestebog WHERE dato >= date() order by dato ASC"

og dette er også meningen at den skal gøre i fødselsdagsoversigten. Problemet er så bare, hvordan jeg får den til kun at sortere efter "20-03" - da den ellers ikke viser datoerne, hvor året er før dags dato.
Avatar billede fennec Nybegynder
06. april 2006 - 08:17 #1
where month(dato)=month(date()) and day(dato)=day(date())
Avatar billede eagleeye Praktikant
06. april 2006 - 08:17 #2
Du kan bruge bruge Month og Day funktionerne til at finde dem:

Sql = "Select * from T_gaestebog WHERE (day(dato) >= day(date()) and month(dato) >= month(date())) or month(dato) > month(date()) order by dato ASC"


Problemet er så nå man kommer til december så viser den ikke dem i januar før det er den 1/1. Så de skal noget med som også tager dem som ligger før...
Avatar billede eagleeye Praktikant
06. april 2006 - 08:18 #3
men hvad skal den vise?
Dem som har fødselsdag i fremtiden eller kun dem som har fødselsdag i dag?
Avatar billede fennec Nybegynder
06. april 2006 - 08:26 #4
.. Glem mit svar. Havde ikke set at det skulle være dagsdato og frem :o)
Avatar billede eagleeye Praktikant
06. april 2006 - 17:14 #5
Nu vil jeg ikke hvilken database du bruger men dette kan bruges til access det er lavet med unions en som vælger fra nu til 31/12 og en som vælger fra 1/1 til nu så har du en fødselsdagsoversigt fra dags dato og fremover:

sql = "SELECT * FROM ("
sql = sql & "SELECT dato, dateserial(year(date()),month(dato),day(dato)) as sortDato FROM T_gaestebog WHERE dateserial(year(date()),month(dato),day(dato)) >= Date()"
sql = sql & " UNION ALL SELECT dato, dateserial(year(date())+1,month(dato),day(dato)) as sortDato FROM T_gaestebog WHERE dateserial(year(date()),month(dato),day(dato)) < Date()"
sql = sql & ") ORDER BY sortDato"
Avatar billede claus66 Nybegynder
06. april 2006 - 17:45 #6
I er Access duer flg:

SELECT *
FROM  T_gaestebog
WHERE (((DateSerial(Year(Date()),Month([dato]),Day([dato])))>Date()))
ORDER BY DateSerial(Year(Date()),Month([dato]),Day([dato]));
Avatar billede eagleeye Praktikant
06. april 2006 - 18:23 #7
Ja hvis man kan leve med den kun viser fødselsdage indtil den 31/12 :)
Avatar billede [tpl]foxy Nybegynder
09. april 2006 - 09:26 #8
Mange tak for svarene. Jeg har valgt at give jer begge point, da I begge er kommet med et fornuftigt svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester