Dag en maand

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Thomas van den Heuvel

Thomas van den Heuvel

08/10/2019 23:42:44
Quote Anchor link
Neemt niet weg dat je vragenstellers ook goede programmeergewoonten mag meegeven. Als je een oplossing geeft, dan zou je verder moeten gaan dan het simpelweg geven van de oplossing (iets met vissen en hengels).

Om maar een hier gebezigde uitspraak aan te halen: "het is hier geen afhaalchinees". Dit forum moet echt af van het simpelweg faciliteren, je mag antwoorden best onderbouwen. Ik denk dat mijn argumenten voor mijn aanpak duidelijk zijn.

Ik kijk op een iets grotere afstand naar het vraagstuk: welke informatievraag wil je beantwoord zien? "Ik wil alle informatie tussen twee datums". En toevallig is dat nu de huidige dag en en einde van de maand, maar dit kan op den duur best iets anders zijn. Als je het niet nodig hebt, maakt het niet zoveel uit welke aanpak je kiest. Als je het wel nodig hebt, dan heb je profijt van een generieke(re) aanpak en hoef je niet opnieuwe queries open te breken.

Er is niets mis met defensief programmeren.
 
PHP hulp

PHP hulp

19/03/2024 04:27:28
 
Michael -

Michael -

08/10/2019 23:43:26
Quote Anchor link
@Thomas, En nog steeds serveert SQL niet de laatste datum (31-10-2019) :-)
 
Rob Doemaarwat

Rob Doemaarwat

08/10/2019 23:47:05
Quote Anchor link
Invoegen op regel 7:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$intervalEnd .= ' 23:59:59';
 
Thomas van den Heuvel

Thomas van den Heuvel

08/10/2019 23:47:07
Quote Anchor link
Ik heb werkelijk waar geen idee waar je het over hebt. Als het echt een datetime is dan zul je de eerste dag van de volgende maand moeten pakken.

Is het echt een DATETIME of een DATE? Zou niet de eerste keer zijn dat naamgeving misleidend is.

BETWEEN a AND b is van en met a tot en met b voor zover ik weet.

Michael - op 08/10/2019 23:43:26:
@Thomas, En nog steeds serveert SQL niet de laatste datum (31-10-2019) :-)

Zie ook niet hoe LAST_DAY() dat dan wel oplost?
Daarnaast zie ik ook niet hoe dat alles wat ik eerder heb gezegd zou invalideren.
Gewijzigd op 08/10/2019 23:57:09 door Thomas van den Heuvel
 

08/10/2019 23:49:43
Quote Anchor link
Het is een DATETIME.
 
Thomas van den Heuvel

Thomas van den Heuvel

08/10/2019 23:54:33
Quote Anchor link
Dan kun je doen wat @Rob voorstelt. Je kunt het rekenwerk nog steeds prima in PHP doen, er verandert verder ook niets aan de argumentatie.
 

09/10/2019 00:19:27
Quote Anchor link
Ja, bedankt!
 
Thomas van den Heuvel

Thomas van den Heuvel

10/10/2019 14:06:21
Quote Anchor link
Om hier nog even op terug te komen. Wat je ook kunt doen is gebruik maken van een zogenaamd "half open domein". Hierbij kijk je van (en met) waarde A tot (en zonder) waarde B, of anders gezegd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
A <= waarde < B

Het "voordeel" hiervan is dat deze intervallen als LEGO-stenen op elkaar aansluiten. Als je bijvoorbeeld een ander interval hebt van (en met) B tot (en zonder) C, dan vormen deze intervallen samen een naadloos geheel.

Je zou dus ook kunnen gaan voor het volgende in plaats van BETWEEN, maar dit is equivalent met de eerdere oplossing:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$dt
= new DateTime();

// these dates can be... anything really
$intervalStart = $dt->format('Y-m-d'); // today
$intervalEnd = $dt->modify('first day of next month')->format('Y-m-d'); // first day of next month

$sql =
    "SELECT event_id, datumtijd
    FROM sportevenementen
    WHERE '"
.$intervalStart."' <= datumtijd
    AND datumtijd < '"
.$intervalEnd."'
    ORDER BY datumtijd ASC"
;

echo $sql;
?>
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

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.