date_diff probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back-End Web Developer

Als Back-End Web Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn. Wat doe je als Back-End Web Developer bij Coolblue? Als Back-End Web Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Als backend developer weet je de weg in PHP, kan je in Typescript een microservice op zetten of ben je bereid om dit te leren. Ook Web Backend Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen PHP

Bekijk vacature »

Lead Webdeveloper

Als Lead webdeveloper bij KUBUS ben je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de webapplicatie en services van BIMcollab. In je rol als lead developer zoek je als vanzelf op een creatieve manier naar het optimum tussen benodigde implementatie-tijd, de performance van de applicatie en een snelle go-to-market van features, aansluitend bij onze geautomatiseerde test- en release train. Hierbij bewaak je in samenwerking met de andere senior ontwikkelaars in je team de architectuur van de applicatie en adviseer je de product owner over noodzakelijke refactoring om de onderhoudbaarheid van het platform te verbeteren. Ons

Bekijk vacature »

PHP developer - Digital Agency

Functie Het team telt momenteel 20 collega’s, bestaande uit developers (front- en backend) en het operations team, waaronder ook het management en twee scrum masters vallen. Ze zijn op zoek naar een PHP developer die in staat is zelfstandig te werken. Je komt te werken in één van de drie scrumteams en gaat aan de slag met een project voor de klant. Het fijne hieraan is dat je wel afwisseling hebt qua werk, maar tegelijkertijd doorlopend werkt voor bestaande klanten. Hierdoor krijg je ook de kans om echt de diepte in te gaan en innovatieve technische oplossingen neer te zetten.

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een gewaardeerde werkgever in regio Tilburg waar jij de tijd en ruimte krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je houdt je bezig met het creëren en bouwen van MS SQL server databases; Je gaat projecten vanaf het begin tot het eind begeleiden. Je sluit aan bij meetings met klanten om hun processen in kaart te brengen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt

Bekijk vacature »

Java Developer

Java Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Front-end Developer - Juniorfunctie

Functie omschrijving Ben jij op zoek naar een uitdagende baan als front-end developer, in een informele werksfeer, waar jij echt het verschil kan maken? Wil jij graag werken voor een bedrijf dat sportiviteit en een open communicatie, hoog in het vaandel heeft staan? Dan hebben wij de perfecte vacature voor je! Voor een klein bedrijf in Rijen dat gespecialiseerd is in het omzetten van digitale woningtekeningen naar managementinformatie, zijn wij per direct op zoek naar een allround front-end developer. Jouw werkzaamheden zien er als volgt uit: Ja gaat nauw samenwerken met de back-end developer. De database structuur is volledig gebouwd

Bekijk vacature »

.NET Developer Azure

Dit ga je doen Het ontwerpen en bouwen van diverse applicaties (C#, ASP.NET, MVC); Het ontwikkelen van Webservices (WCF); Het meewerken aan de transitie naar Azure; Het samenwerken met collega's binnen een Scrumteam en meedenken over de User Stories; Het bouwen van unittesten; Meedenken over nieuwe tooling, ontwikkelingen en technologieën in de markt. Hier ga je werken Je komt te werken bij een organisatie die verantwoordelijk is voor de ontwikkeling van verschillende portalen. Deze portalen worden gebruikt door diverse partijen en jouw taak is om ervoor te zorgen dat deze optimaal functioneren. Je wordt onderdeel van een Scrumteam en werkt

Bekijk vacature »

C#.NET Developer Jr. Functie

Functie omschrijving Bouw jij graag aan applicaties om processen in distributiecentra te optimaliseren? Wij zijn op zoek naar een C#.NET ontwikkelaar in regio Breda die hier graag een steentje aan bijdraagt! Jouw werkzaamheden zullen er als volgt uitzien: Je krijgt veel vrijheid in de keuze van de technieken die je gaat gebruiken. Uiteraard wel binnen de gestelde kaders, en door gebruik te maken van het .NET platform. Je gaat aan de slag met de ontwikkeling van een nieuwe module binnen de WMS suite van dit bedrijf. Deze "carrier" module gaat er voor zorgen dat de selectie van een vervoerder volledig

Bekijk vacature »

PHP Developer - Draag bij aan de maatschappij!

Bedrijfsomschrijving Wil jij als applicatieontwikkelaar deel uitmaken van een gedreven ontwikkelteam en werken aan innovatieve producten? Dan hebben wij dé uitdaging voor jou! Wij zijn op zoek naar een enthousiaste collega die samen met ons de technische ondergrond van onze producten verder wil ontwikkelen met behulp van PHP. Met jouw expertise geef je de finishing touch aan onze producten om jezelf steeds opnieuw weer te verrassen. Functieomschrijving Bij ons staan innovatie en creativiteit centraal. Wij zijn op zoek naar een enthousiaste PHP ontwikkelaar die nieuwe ideeën en inzichten kan inbrengen en daarmee zichzelf en het team verder kan laten groeien.

Bekijk vacature »

C# .NET Developer

Dit ga je doen Je richt je op het doorontwikkelen en herstructureren van het platform; Je werkt in teamverband en zelfstandig aan uitdagende projecten voor verschillende klanten; Softwareontwikkeling middels C# .NET; Je staat in contact met verschillende opdrachtgevers om de klantwensen te bespreken en deze vervolgens te ontwikkelen; Verbeteren van bedrijfsprocessen; Implementaties. Hier ga je werken Als .NET Developer kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet

Bekijk vacature »

PHP Programmeur

Functieomschrijving Vanuit het hoofdkantoor in omgeving Breda, ontwikkel je als PHP programmeur niet alleen webapplicaties, maar ben je verder ook gefocust op het constant inspelen op nieuwe innovaties m.b.t software ontwikkeling. Naast het ontwikkelen van webapplicaties, bouwt deze toffe werkgever ook webshops en websites voor hun opdrachtgevers. Wat ga je doen? Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het ontwerpen en implementeren van webapplicaties met het Symfony framework; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden en updaten van bestaande applicaties die

Bekijk vacature »

Backend developer

Functie omschrijving Ben jij graag bezig met de back-end van applicaties? Zou je dit graag willen doen voor een kleine werkgever waar ook tijd is voor een drankje op zijn tijd? Je taken hierbij zullen bestaan uit: Gebruik maken van de volgende technieken: .NET (core), C#, SQL, XML, MVC, JSON, REST & SOAP API. Gebruik maken van de volgende tools: Visual Studio, GIT, Jira, Jenkins. Bovengenoemde technieken en tools ga je gebruiken om: Nieuwe functionaliteiten te ontwikkelen. Wijzigingsverzoeken van klanten uitvoeren. Verzorgen van koppelingen tussen data. Bedrijfsprofiel Jouw nieuwe werkgever bevindt zich in regio Raamdonksveer en bieden oplossingen op gebied

Bekijk vacature »

Front-End Developer

As a Front-End Developer at Coolblue you improve the user-friendliness of our webshop for millions of customers. How do I become a Front-End Developer at Coolblue? As a Front-End Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present these within the team. You also take pride in your work and welcome any feedback. Would you like to become a Front-End Developer at Coolblue? Read below if the job suits you. You

Bekijk vacature »

Front-end Developer

Gezellige team, passie en een groene toekomst! Lees hier de vacature van Front-end Developer bij All in Power! All in power heeft zich tot doel gesteld écht bij te dragen aan de energietransitie. Dit doen wij door de markt voor energie volledig op zijn kop te zetten. Producenten van schone (wind- of zonne-)energie verkopen via ons platform hun energie rechtstreeks aan gebruikers. Of dit nu huishoudens, bedrijven of bijvoorbeeld laadpalen zijn ons platform maakt het uitwisselen van energie mogelijk. Zo maken we de business case van onze klanten veel sterker en loont het om (meer) te investeren in vergroening voor

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Breda ben je als PHP/Symfony Developer niet alleen gefocust op het ontwikkelen van software. Daarnaast ben je voortdurend bezig met het zoeken naar nieuwe trends en ontwikkelingen die van waarde kunnen zijn voor de efficiëntie van software ontwikkeling. Hieronder een kort overzicht van jouw takenpakket: Het ontwerpen en implementeren van webapplicaties met het Symfony Framework; Het schrijven van een schone en efficiënte codes; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klant; Onderhouden en updaten van bestaande applicaties die zijn gebouwd met het

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

27/05/2026 13:15:13
 
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:
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:
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.