Rekenen met datums

MySQL kan ook rekenen met datumtijd velden.
Stel dat je een factureersysteem hebt en dat je wilt weten wanneer de betalingstermijn van een factuur verloopt.

Voorbeeld 6: Facturen laten zien waarvan de betalingstermijn (4 weken) verlopen is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
  $sql
= "
    SELECT factuurnummer
    FROM facturen
    WHERE DATE_ADD(factuurdatum, INTERVAL 28 DAY) < NOW()
    AND status = 'nog niet betaald'
    "
;
?>


In plaats van DAY kun je ook werken met HOUR, MINUTE, SECOND, MONTH en YEAR. Er zijn ook combinaties mogelijk, zoals DAY_HOUR, DAY_MINUTE, DAY_SECOND enzovoorts.

Zo zou je, omwille van het voorbeeld, de betalingstermijn op 4 weken plus een halve dag kunnen zetten.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
  $sql
= "
    SELECT factuurnummer
    FROM facturen
    WHERE DATE_ADD(factuurdatum, INTERVAL '28 12' DAY_HOUR) < NOW()
    AND status = 'nog niet betaald'
    "
;
?>


Voorbeeld 7: Wie moet ik een verjaardagskaartje sturen?
EDIT: DIT VOORBEELD WERKT NIET GOED. IK BEN OP ZOEK NAAR EEN MOOI ALTERNATIEF

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
  $sql
= "
    SELECT
    naam,
    DATE_FORMAT(geboortedatum, '%d') AS datum
    FROM kennissen
    WHERE (geboortedatum - NOW()) BETWEEN 1 AND 3
    "
;
?>


Ik hoop dat ik je een beetje op het spoor heb gezet van de mogelijkheden van datumtijd-funkties in MySQL. Deze tut is allesbehalve compleet. Voor verdere info verwijs ik graag naar het MySQL manual. Deze link is expres niet naar de nieuwste versie, want de meeste hosts draaien nog geen MySQL 5.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Datum- en tijdtypes
  3. Formats
  4. Nederlandse en Engelse notatie
  5. Rekenen met datums

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.