Postdate cannot be empty!?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

B a s
Beheerder

B a s

16/03/2007 09:47:00
Quote Anchor link
Ik voer de volgende query uit, voor een weblog systeem.

Hij haalt de berichten uit de database die niet ouder zijn dan 4 dagen, maar ondanks dat, laat hij altijd 5 actuele berichten zien. Dus stel dat er 2 berichten zijn die niet ouder zijn dan 4 dagen, dan vult hij dat aan met de 3 nieuwste berichten die wel ouder zijn dan 4 dagen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
id
, title
, message
, DATE_FORMAT(postdate, '%d.%m.%Y') as showdate
, DATE_FORMAT(postdate, '%Y/%m/%d') as dirdate
, cat FROM weblogs
WHERE
 postdate > ADDDATE(NOW(), INTERVAL 3456000 DAY)
 AND active = 1 ORDER BY postdate DESC


Het rare is nu, hij doet het goed, alleen krijg ik de volgende foutmelding:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Column 'postdate' cannot be null


Mijn MySQL kolom is 'datetime'. Verder is de kolom in geen enkele row leeg. En het rare is dus, dat als ik de errors hide d.m.v. @, dat hij het dan wel goed doet.

Als ik " postdate > ADDDATE(NOW(), INTERVAL 3456000 DAY) AND " weghaal, geeft hij geen error meer. Daar ligt het dus aan. Ik heb al enkele dingen geprobeerd te wijzigen maar het lukt me echt niet. Ik denk dat ik er te lang mee bezig ben, ik zie het niet meer.

Met de vorige MySQL versie werkte het prima, maar nu ik MySQL geupgrade heb werkt het niet meer.

De huidige PHP versie die ik draai is 5.2.1 en de MySQL versie is 5.0.33.
 
PHP hulp

PHP hulp

20/11/2024 12:38:06
 
Robert Deiman

Robert Deiman

16/03/2007 10:09:00
Quote Anchor link
Kan het niet zijn dat je interval te groot is voor de huidige MySQL versie? Je hebt daar een interval van bijna 3,5 miljoen dagen staan, misschien dat het dat gewoon niet aan kan. Probeer eerst eens met 1 dag.
 
B a s
Beheerder

B a s

16/03/2007 10:30:00
Quote Anchor link
Ah kijk! Daar heb ik wat aan. Het lijkt nu te werken. Eerst moest het in seconden opgegeven worden, nu niet meer blijkt! Dank!
 
Robert Deiman

Robert Deiman

16/03/2007 11:06:00
Quote Anchor link
@Bas

Lijkt me ook logisch, omdat je een interval in Days hebt staan :P Jij kijkt bijna een miljoen jaar verder in je voorbeeld. Weet je wel hoeveel mileniumbugs daar tussen zitten :P
Het kan ook wel in seconden, maar dan moet je van DAYS -> SECONDS maken
 



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.