Ga naar inhoud

PostgreSQL query: Order by date


anoniem

Aanbevolen berichten

ik ben bezig met het klussen van een aktiviteiten kalender op mijn website, dmv php en een postgresql database. Voor mn site heb ik een form geklust om aktiviteiten toe te voegen, dit werkt allemaal prima. maar dan komt het: als ik de aktiviteiten wil opvragen, dan wil ik dat alle aktiviteiten gesorteerd worden op datum én dat aktiviteiten die al geweest zijn niet meer opgevraagd worden. Dus ben ik op zoek naar een pg_query() die alleen de aktiviteiten weergeeft die nog moeten komen. [code:1:e71e276b79] $nu = date("Y-m-d"); //huidige datum $jaar = date("Y") + 1; $jaar = date($jaar ."-m-d"); //precies een jaar van nu $query = "SELECT * FROM agenda where datum between ". $nu ." and ". $jaar . " ORDER by datum"; //hiermee hoop ik dus dat de query alleen de data retourneert tussen nu en over een jaar [/code:1:e71e276b79]de data die in de database zijn opgeslagen, zijn van hetzelde format als de variabelen $nu en $jaar. Het zou ook kunnen dat php checkt of de datum al geweest is, maar dan krijg je bij een grote database het probleem dat er erg veel gegevens opgevraagd moeten worden. Heeft iemand een tip hoe ik met postgresql kan checken of een datum al geweest is?? bvd
Link naar reactie
Ik ben niet bekend met postgresql, dus de vertaling van de functienamen zal je misschien even moeten opzoeken in de manual. Ik ga er i.i.g. van uit dat postgresql equivalenten voor onderstaande functies heeft. Het volgende is T-SQL code waarin de datum bewerkingen in de database worden uitgevoerd i.p.v. in je php. Daarmee zit je dus niet met het probleem van eventuele conversie cq. formaat conflicten. Functies lijken me wel self-explaining, maar als je meer info nodig hebt dan horen we het wel. [code:1:b74d35565f] SELECT bla FROM tabel WHERE datum BETWEEN getdate() AND dateadd(year, 1, getdate()) ORDER BY datum [/code:1:b74d35565f] Als je overigens alle toekomstige activiteiten (en de activiteiten van vandaag) wil hebben dan kan dat natuurlijk ook. [code:1:b74d35565f] SELECT bla FROM tabel WHERE datum >= getdate() ORDER BY datum [/code:1:b74d35565f]
Link naar reactie
dank, ik ben er uitgekomen. de functie getdate() doet het niet bij postgresql, maar met de standaard variabele current_date doet ie het wel :D de code is dus als volgt (voor diegenen die dat ook kunnen gebruiken)[code:1:c90ae01e31]$query = "SELECT * FROM table WHERE date_col >= CURRENT_DATE ORDER BY datum";[/code:1:c90ae01e31]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...