date_diff probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior PHP developer

Functie Jouw werkzaamheden zullen grotendeels bestaan uit het in teamverband ontwerpen, vernieuwen en door ontwikkelen van het systeem. Het is echt back-end werk (bijvoorbeeld het doorontwikkelen van een API) en dit moet je dan ook liggen. Ze zijn niet persee gebonden aan talen of tools maar gebruiken graag de technieken die het beste aansluiten op de gegeven oplossing. Voor nieuwe (versies van) componenten maken ze veelal gebruik van Go(lang). Bij aanpassingen aan bestaande onderdelen gebeurt dit in PHP en C++. Het team is heel divers, er hangt een relaxte sfeer en ze organiseren regelmatig leuke music nights, game nights e.d.

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Voor een leuke opdrachtgever zijn wij op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Hoofddorp. Binnen deze functie vervul je een onsite learning programma waarbij je aan de slag gaat met PHP en Laravel. Hierbij ben je voornamelijk werkzaam op verschillende klantlocaties en is het jouw taak om hun wensen en eisen

Bekijk vacature »

Traineeship Fullstack developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »

C#.NET ontwikkelaar

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een C#.NET ontwikkelaar. Je bent verantwoordelijk voor het ontwikkelen van dashboards, webapplicaties en apps voor de eigen IOT-oplossingen. Samen met een vooruitstrevend team van ontwikkelaars en engineers krijgen jullie de opdracht om de sensoren in de apparatuur te scannen en vervolgens de data om te zetten in belangrijke inzichten voor de klanten. Taken en verantwoordelijkheden: Heb jij ideeën over nieuwe technieken die jullie kunnen implementeren? Hier wordt echt naar je geluisterd en gekeken of jouw idee daadwerkelijk ingezet kan worden; Je gaat aan de slag met de

Bekijk vacature »

Full stack .NET developer Microsoft 365

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Lead developer

Functie Als lead developer wordt jij verantwoordelijk voor een van onze development teams. Samen met de Software Architect bewaak jij de kwaliteit en uitvoering van onze complexe vraagstukken. Daarnaast ben jij verantwoordelijk voor het inschatten, designen en ontwikkelen van middelgrote tot grote veranderingen in de software. Ook coördineer jij het proces rondom complexe technische vraagstukken. Verder bestaat jouw takenpakket uit het volgende: – Het aansturen van jouw development team; – Het begeleiden van Junior Software Engineers; – Het maken van technische analyses m.b.t. nieuwe aanvragen en het tijdsbestek inschatten voor de uitvoering hiervan; – Het uitvoeren van de ontwikkeling van

Bekijk vacature »

Lasrobot Programmeur

Over de functie Off-line programma’s maken die het beste resultaat bij de lasrobot mogelijk maken De programma’s met behulp van teach verder optimaliseren Proactief meedenken over oplossingen en over de juiste invulling van lasmallen Het lasrobotproces zoveel mogelijk optimaliseren Over het bedrijf Onze opdrachtgever is gespecialiseerd in de engineering, productie en assemblage van samengestelde plaatwerkproducten en monodelen uit metaal. Onze klant werkt samen met het team aan de mooiste producten van de toekomst. Binnen dit bedrijf staat een sterk team van specialisten op het gebied van industrial design, mechanical engineering, in-house prototyping en all-round projectmanagement. Met daarbij uiteenlopende kennis in

Bekijk vacature »

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

PHP Developer

Functie omschrijving Als PHP Developer ga jij aan de slag met uitdagende software projecten. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Deze software bouw je vooral in PHP en specifiek Laravel. Dit framework kent dus geen geheimen voor jou. De software die jij gaat ontwikkelen is heel divers, van urenregistratiesystemen tot compleet geautomatiseerde tools. In deze veelzijdige functie ga jij je zeker niet vervelen, elke dag bestaat weer uit nieuwe uitdagingen. Bedrijfsprofiel Deze

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

T-SQL Database developer

Functie omschrijving Ben jij een ETL database specialist? Houd jij ervan om te puzzelen met Databases, Query's & Stored procedures? Zoek jij uitdaging, vrijheid en verantwoordelijkheid? Zoek dan niet verder! Wij zijn per direct op zoek naar medior en senior database developers. Je gaat werken voor een relatief klein softwarebedrijf in omgeving Tilburg. Samen met 12 collega's (allemaal techneuten), ga jij je bezig houden met het bouwen en/of onderhouden van database software. Deze software wordt internationaal ingezet voor het automatiseren van logistieke processen. Jouw werkzaamheden gaan er als volgt uit zien: Je bent in een klein team met developers, verantwoordelijk

Bekijk vacature »

C#.NET/Unity Developer

Functieomschrijving Voor een gewaardeerde werkgever in de omgeving van Breda zijn wij op zoek naar een software ontwikkelaar. Dit bedrijf houdt zich bezig met de ontwikkeling van WMS Software (C#/Unity & SQL). Past dit bij jou? Lees snel verder! Jouw werkzaamheden zullen er als volgt uitzien: Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van processen; Samen met 6 applicatieontwikkelaars hebben jullie de verantwoordelijkheid voor de uitbreiding en ontwikkeling van de webapplicaties; Het uitvoeren van updates/aanpassingen aan de huidig draaiende applicaties; Je bent een luisterend oor naar klanten en vertaalt hun wensen door naar bruikbare software. Bedrijfsprofiel Wie

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Java developer Zorgsysteem

Dit ga je doen Werken aan het eigen gebouwde zorgsysteem; Verbeteringen maken en toepassen binnen de applicatie; Jij gaat werken aan de Back-end van de applicatie en sporadisch werk je mee aan de Front-end; Samenwerken met andere teams voor een optimaal resultaat; Jij kan 'clean' werken en high quality code schrijven; Jij werkt resultaatgericht. Hier ga je werken De organisatie houdt zich bezig met diverse applicaties met betrekking tot zorgregistratie. Dankzij hun systeem komt alle informatie, omtrent de zorg van een patiënt, op een overzichtelijke en toegankelijke manier samen in één systeem te staan. Op deze manier is deze informatie

Bekijk vacature »

Pagina: 1 2 volgende »

Jurgen

jurgen

14/01/2008 08:52:00
Quote Anchor link
Hey,

Ik heb een datumveld in m'n datebase. (event_date)
Nu wil ik met ondestaande query alle events ophalen tesamen met het aantal dagen wanneer dat event plaatsvind.
SELECT DATE_FORMAT(CURDATE(),'%d-%m')), DATE_FORMAT(event_date,'%d-%m'), event_short_content,event_long_content, DATEDIFF(DATE_FORMAT(CURDATE(),'%d-%m'),DATE_FORMAT(event_date,'%d-%m')) AS verschil FROM events;

deze geeft helaas NULL terug bij 'verschil'
Gaat dit niet werken of heb ik ergens een fout?
 
PHP hulp

PHP hulp

30/11/2024 20:34:10
 
Frank -

Frank -

14/01/2008 10:01:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
SELECT
  DATE_FORMAT(CURDATE(),'%d-%m')),
  DATE_FORMAT(event_date,'%d-%m'),
  event_short_content,
  event_long_content,
  DATEDIFF(
    DATE_FORMAT(CURDATE(),'%d-%m'),
    DATE_FORMAT(event_date,'%d-%m')
  ) AS verschil
FROM
  events;

Stap 1: De query leesbaar uitschrijven, de basis van iedere goed script.
Stap 2: De handleiding: Waar staat in de handleiding van MySQL dat je de functie DATE_FORMAT() in de functie DATEDIFF() moet gebruiken? Je hebt 2x een datum nodig, niet 2x een waardeloze string.
Stap 3: 2x met DATE_FORMAT() data ophalen is leuk en aardig, maar zonder alias is dat in PHP niet/nauwelijks bruikbaar. Geef dus nog even een alias op in de query. Kun je direct no geen overbodig haakje ) weghalen.

mod_edit:
Sorry Frank voor de edit, maar vond het niet waard er een nieuwe post aan te wijten.
Aan de TS: De SQL die hierboven staat is dus niet de juiste, maar is jouw eigen query en dan wel op een goede manier uitgewerkt. Nu kan je tenminste fatsoenlijk de query lezen.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Jurgen

jurgen

14/01/2008 10:16:00
Quote Anchor link
Helaas Frank, deze geeft ook al een NULL terug bij elke vergelijking :(
Ik ben ondertussen met deze bezig:
SELECT *, DATE_FORMAT(CURDATE(),'%j'), DATE_FORMAT(event_date,'%j'), DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') as verschil FROM events

Deze geeft nl het aantal dagen terug wanneer het event plaatsvind. Wat ik dus wil. :)

In de WHERE clausule wil ik het aantal dagen hebben die kleiner zijn dan 4 en groter dan 0 (dus geen verleden events) , dus:
SELECT *, DATE_FORMAT(CURDATE(),'%j'), DATE_FORMAT(event_date,'%j'), DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') as verschil FROM events WHERE DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') < 4 AND DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') > 0

Deze 'lijkt' te werken maar is dit wel correct?
 
Robert Deiman

Robert Deiman

14/01/2008 10:26:00
Quote Anchor link
@Jurgen

Je hebt blijkbaar de edit van Frank zijn bericht niet gelezen, en ik denk zelfs behalve de code het hele bericht niet.

Lees het hele bericht eens. Het voorbeeld wat hij gaf (volgens jou) is gewoon de query die jij gebruikt, maar dan leesbaar uitgeschreven. En neem de dingen die Frank zegt ter harte, hij is (1 van) de SQL guru's hier.
 
Jurgen

jurgen

14/01/2008 10:40:00
Quote Anchor link
ivm leesbare query ben ik het eens met jou en frank. Sorry voor deze.
Die edit had ik idd niet gelezen, was te snel met reageren.
Ik heb wel het hele bericht gelezen hoor. Maar mysql gaf een null terug bij een correct geschreven query, wat ik dan weer vreemd vind. Ofwel gaat dit niet lukken op die manier. daarom overgegaan naar die andere query.
 
Robert Deiman

Robert Deiman

14/01/2008 10:46:00
Quote Anchor link
@Jurgen

Die query van jou is niet correct.. Een datediff doe je niet over een met DATE_FORMAT() geformatteerde datum, maar over de gewone datum! Dus de query is al niet correct.
Bovendien, als je in je query een SELECT DATE_FORMAT(kolom,'%Y-%D') zou gebruiken, dan moet je er een alias bij zetten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT
    DATE_FORMAT(datum, '%Y-%d) AS formatted_date
 
Jurgen

jurgen

14/01/2008 11:02:00
Quote Anchor link
Dat is 't em juist Robert, die alias heb ik niet nodig! heb enkel het vershil nodig. ik maak dus enkel een alias op verschil.
Ofwel snap ik jullie niet.

Ivm je edit over frank: frank is idd een guru hier, waar ik niet aan twijfel. Had gehoopt dat hij hier een antwoord zou geven op m'n vraag :)

ivm aliassen:
ik kan toch geen vergelijking maken als ik aan een veld een alias toeken:
vb
SELECT DATE_FORMAT(event_date,'%d-%m') as datum FROM events
geeft alle maanden en jaren van een event.
Als ik nu deze gebruik
SELECT DATE_FORMAT(event_date,'%d-%m') as datum ,DATE_FORMAT(CURDATE(),'%d-%m')as nu FROM events WHERE datum < nu

geef natuurlijk een error
Unknown column 'datum' in 'where clause'

dus die aliassen heb ik nie nodig. Hoop dat ik hier een beetje duidelijker mee ben.
 
Joren de Wit

Joren de Wit

14/01/2008 11:05:00
Quote Anchor link
Jurgen, zoals Robert ook al zei: vergelijkingen met data doe je met de oorspronkelijke data. Niet met de resultaten van DATE_FORMAT. Die resultaten zijn immers geen data meer, enkel strings die een datum in een bepaalde notatie weergeven.

Het zou dus zo moeten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
SELECT
    DATE_FORMAT(event_date, '%d-%m') AS datum,
    DATE_FORMAT(CURDATE(), '%d-%m') AS nu
FROM
    events
WHERE
    event_date < CURDATE()


ps. En die aliassen heb je zeker wel nodig. Hoe zou je anders de geformatteerde data ('datum' en 'nu') uit de resultaat set willen lezen?
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Jurgen

jurgen

14/01/2008 11:10:00
Quote Anchor link
Grrrrrr

Nog 1 poging:

Ik heb dus een tabel met evenementen...
vb verjaardag van iemand : 14 januari 1962

Nu wil ik zoeken wanneer dat event plaatsvind (in 2008)
ik moet dit veld toch omzetten zonder rekening te houden met het jaar!
date_format dus.

Maar ik kan helaas niet gaan rekenen met date_format omdat ik telkens NULL krijg voorgeschoteld!!!
pfffffff
Of ben ik het die hier moeilijk doe!
 
Joren de Wit

Joren de Wit

14/01/2008 11:16:00
Quote Anchor link
Dan zoek je helemaal in de verkeerde richting, maar feit blijft dat je niet kunt rekenen met het resultaat van DATE_FORMAT().

Gelukkig kent MySQL genoeg andere functies waarmee je het probleem zou kunnen oplossen. Als je enkel de datum wilt weten van het event in 2008, zou ik het zo aanpakken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
SELECT
    CONCAT(
        DATE_FORMAT(event_date, '%d-%m-'),
        YEAR(CURDATE())
    ) AS event_in_huidig_jaar
FROM
    events

Natuurlijk zou je er ook en andere constructie omheen kunnen bouwen waarin je bijvoorbeeld de datum in het volgende jaar zou weergeven als het event in het huidige jaar al geweest is.

Maar dat hangt er maar helemaal vanaf wat jij uit de database wilt halen.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Robert Deiman

Robert Deiman

14/01/2008 11:21:00
Quote Anchor link
jurgen schreef op 14.01.2008 11:10:
Grrrrrr

Nog 1 poging:

Ik heb dus een tabel met evenementen...
vb verjaardag van iemand : 14 januari 1962

Nu wil ik zoeken wanneer dat event plaatsvind (in 2008)
ik moet dit veld toch omzetten zonder rekening te houden met het jaar!
date_format dus.

Maar ik kan helaas niet gaan rekenen met date_format omdat ik telkens NULL krijg voorgeschoteld!!!
pfffffff
Of ben ik het die hier moeilijk doe!


Jij bent het die moeilijk doet, je kan niet rekeken met de met DATE_FORMAT geformatteerde data. Neem dat nu eens van ons aan

Je kan met de functies MONTH() en DAY() wel kijken of iets op een bepaalde dag en / of datum valt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
WHERE
    MONTH(datumveld) >= 10 (dus if of na oktober)
AND
    DAY(datumveld) >= 5 (dus ook nog eens na de 5e)
    
    

Nogmaals Gebruik geen DATE_FORMAT in je vergelijking, neem dat nu eens van ons aan. Dat werkt niet en zal ook nooit gaan werken.
 
Jurgen

jurgen

14/01/2008 11:24:00
Quote Anchor link
Sorry jongens, maar alle hulp is idd welkom.
Verklaar dan eens waarom deze dan wel werkt:
SELECT *, DATE_FORMAT(CURDATE(),'%j'), DATE_FORMAT(event_date,'%j'), DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') as verschil FROM events WHERE DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') < 4 AND DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') >= 0

En ja, 'leesbare querys', maar heb deze ff geprobeerd en gecopieerd.

Jij zegt van geen date_format in m'n vergelijking. deze lukt dus wel.
 
Joren de Wit

Joren de Wit

14/01/2008 11:30:00
Quote Anchor link
Puur toeval. Je selecteert hier met date_format enkel een dag van een jaar. Hoewel dit een string is, zal MySQL het ook kunnen interpreteren als een integer (omdat de string uit enkel getallen bestaat) en er dus mee kunnen rekenen als integer.

Nogmaals, dit is dus puur toeval en ik zou het eerder een bug in MySQL willen noemen dan een functionaliteit.

ps. Dat neemt overigens nog niet weg dat jij het resultaat van de eerste twee DATE_FORMAT()'s in die query, moeilijk kunt uitlezen. Simpelweg omdat je ze geen alias geeft...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Jurgen

jurgen

14/01/2008 11:32:00
Quote Anchor link
Lol
Toeval of nie, ik zou dan wel eens zien hoe m'n 'niet-toevallige' query eruit moet zien :)

dus ik moet alle evenementen hebben die de komende 4 dagen gaan plaatsvinden.
Ben eens benieuwd nu :)

Bedankt alvast
 
Robert Deiman

Robert Deiman

14/01/2008 11:36:00
Quote Anchor link
Omdat je daar simpel gezegd uit DATE_FORMAT maar alleen een jaartal krijgt, en daarmee kan je wel verder rekekenen.

Jurgen, neem het nu eens aan, gebruik niet DATE_FORMAT in je vergelijking, die hoort daar niet en is daar niet voor bedoeld. Onderstaand hoe je het (in het geval van de query die dus wel lukt) zou moeten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
    DAYOFYEAR(CURDATE()) AS huidig_dag,
    DAYOFYEAR(event_date) AS event_dag,
    DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) as verschil
FROM
    events
WHERE
    DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) < 4
AND
    DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) >= 0


Let wel op, ik heb niet inhoudelijk naar de query gekeken, alleen de juiste MySQL functies gebruikt om de query wel goed te laten zijn.
Probeer het nu eens zo, en ga ook op zo'n manier aan de gang met de andere query.

YEAR(datumveld) -> Geeft jaartal
MONTH(datumveld) -> Geeft maand
DAY(datumveld) -> Geeft dag

Vergelijk de dag en de maand niet in 1 keer, maar doe dat los van elkaar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
WHERE
   MONTH(datumveld) >= 8
AND
    DAY(datumveld) >= 4
    


Met de voorgaande WHERE clause kijk je naar data die na 4 augustus vallen, maar niet naar het jaartal.

Edit:
Ik had niet goed gekeken, het moest dayofyear zijn in plaats van year.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Joren de Wit

Joren de Wit

14/01/2008 11:43:00
Quote Anchor link
jurgen schreef op 14.01.2008 11:32:
dus ik moet alle evenementen hebben die de komende 4 dagen gaan plaatsvinden.

Zo dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT
    event
FROM
    events
WHERE
    DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) <= 4

Neem ook eens een kijkje in de MySQL handleiding en let op het subtiele verschil tussen functies als DAY() en DAYOFYEAR(). Verder zul je met deze query nog wel in de knoop komen naarmate het einde van het jaar nadert.

1 - 365 is natuurlijk <= 4, maar 10 - 365 is dat ook. Kortom, alle events van het komende jaar zullen weergegeven worden. Aan jou nu de taak om een extra voorwaarde te stellen zodat dit niet gebeurt.
 
Jurgen

jurgen

14/01/2008 11:50:00
Quote Anchor link
Dit is dus een geldige query:
SELECT *,
DAYOFYEAR( event_date ) - DAYOFYEAR( CURDATE( ) ) as verschil
from events
WHERE DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) <= 4
AND DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) > 0

Geef idd terug wat ik wil
Thx nog
 
Frank -

Frank -

14/01/2008 11:53:00
Quote Anchor link
Tip: Ga testen.

Zet een hele serie verschillende datums in de database en ga vervolgens de systeemdatum van jouw pc/server aanpassen om verschillende situaties na te bootsen. Alleen een verjaardag op 14 januari testen op 14 januari is niet zo handig. En dan druk ik het heel voorzicht uit!

Daarnaast is MySQL een zeer onbetrouwbare database, die gaat bij het minste of geringste gokken welke data hij vandaag retour geeft. Wanneer jij even niet oplet, lijkt het dat er correcte data retour komt (hé, het werkt! er is data!), maar in werkelijkheid klopt er geen ene mallemoer van. Goed testen is dus een vereiste. Maar ook een vak apart...

Edit:
Quote:
Geef idd terug wat ik wil

Nogmaals, ga testen. En in dit geval ook met datums ná 28 februari en ook in andere jaren dan 2008. Dat is een schrikkeljaar en heeft dus meer dagen dan de andere jaren.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Robert Deiman

Robert Deiman

14/01/2008 11:53:00
Quote Anchor link
Dat is wel een geldige query inderdaad.. Maar let ook even op de opmerking van Blanche, die moet je nog wel afvangen.

Probeer nu eens met de informatie die je van ons (in overvloede) hebt gekregen je volgende query op te bouwen.
 
Joren de Wit

Joren de Wit

14/01/2008 11:58:00
Quote Anchor link
Je had zo te zien zelf al bedacht dat dat verschil groter moest zijn dan 0. Nu kent de database hier nog een kortere functie voor:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
SELECT
    *,
    DAYOFYEAR( event_date ) - DAYOFYEAR( CURDATE( ) ) as verschil
FROM
    events
WHERE
    DAYOFYEAR(event_date) - DAYOFYEAR(CURDATE()) BETWEEN 0 AND 4
 
Jurgen

jurgen

14/01/2008 12:03:00
Quote Anchor link
Die had ik idd al gevonden Blanche.
Aan allen, bedankt nog voor de support. Ben intussen aan t testen.
Maar was toch eens benieuwd wat deze query gaf in pg

SELECT *, DATE_FORMAT(CURDATE(),'%j'), DATE_FORMAT(event_date,'%j'), DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') as verschil FROM events WHERE DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') < 4 AND DATE_FORMAT(event_date,'%j') - DATE_FORMAT(CURDATE(),'%j') >= 0

Ben intussen wel aan het testen met die query die ik van jullie had :)
 

Pagina: 1 2 volgende »



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.