Hey,
Om verjaardagen te selecteren gebruik ik onderstaande query (versimpelde vorm):
Nu werkt dit nabehoren, echter wil ik binnen de SELECT het interval in dagen terugkrijgen. Is dit überhaupt mogelijk of moet ik dit in php afhandelen?
Het probleem in deze is dat het interval in dagen berekent moet worden zonder een jaartal (of ik moet heel moeilijk gaan doen door te controleren of de maand en dag van een geboortedatum in het komend jaar ligt (in het geval dat het nu bijv. december is en diegene jarig is in januari).
Het lijkt mij veel handiger om rechtstreeks het interval terug te krijgen, maar ik weet niet of dit überhaupt mogelijk is.
(wat ik hiermee wil bereiken is het kunnen aangeven of een verjaardag eergisteren, gisteren, vandaag, morgen of overmorgen is)
Om verjaardagen te selecteren gebruik ik onderstaande query (versimpelde vorm):
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| SELECT leden.id, leden.gebruikersnaam FROM leden WHERE IF( 1 * DATE_FORMAT( DATE_SUB( CURDATE( ) , INTERVAL 4 DAY ) , '%c%d' ) >1 * DATE_FORMAT( leden.geboortedatum, '%c%d' ) , CONCAT( EXTRACT( YEAR FROM DATE_SUB( CURDATE( ) , INTERVAL 2 DAY ) ) +1, '-', RIGHT( leden.geboortedatum, 5 ) ) , CONCAT( EXTRACT( YEAR FROM DATE_SUB( CURDATE( ) , INTERVAL 2 DAY ) ) , '-', RIGHT( leden.geboortedatum, 5 ) ) ) BETWEEN DATE_SUB( CURDATE( ) , INTERVAL 2 DAY ) AND DATE_ADD( CURDATE( ) , INTERVAL 14 DAY ) |
Nu werkt dit nabehoren, echter wil ik binnen de SELECT het interval in dagen terugkrijgen. Is dit überhaupt mogelijk of moet ik dit in php afhandelen?
Het probleem in deze is dat het interval in dagen berekent moet worden zonder een jaartal (of ik moet heel moeilijk gaan doen door te controleren of de maand en dag van een geboortedatum in het komend jaar ligt (in het geval dat het nu bijv. december is en diegene jarig is in januari).
Het lijkt mij veel handiger om rechtstreeks het interval terug te krijgen, maar ik weet niet of dit überhaupt mogelijk is.
(wat ik hiermee wil bereiken is het kunnen aangeven of een verjaardag eergisteren, gisteren, vandaag, morgen of overmorgen is)
[ Voor 5% gewijzigd door radem205 op 21-02-2010 22:16 ]