Groter of gelijk dan - operator
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
SELECT count( * ) AS mozilla
FROM `statistiek`
WHERE browser LIKE '%Gecko%'
AND (
datum > '2006-11-20'
)
AND (
datum < '2006-11-20'
)
?>
SELECT count( * ) AS mozilla
FROM `statistiek`
WHERE browser LIKE '%Gecko%'
AND (
datum > '2006-11-20'
)
AND (
datum < '2006-11-20'
)
?>
Heb volgende SQL query gemaakt om uit een stats tabel een periode te selecteren. Dus via een form kan een gebruiker aangeven dat hij stats wil zien Van datum X tot Y. Opzicht werkt deze query zolang ik maar niet beide dagen het zelfde maak zoals boven in de query te zien is. Dan geeft hij 0 als resultaat. Nou dacht ik dit zelf natuurlijk gewoon op te lossen met de operator: <= en >=. Maar nou merk ik tot mijn verbazing dat ik dan weer 0 als resultaat krijg. Wat doe ik fout? Is die AND soms niet goed?
Dit kan simpelweg niet.
En vroeger dan ... en later dan ...
Edit: Dit kan dus niet bij dezelfde datum
Dit kan wel dus:
(datum > '2006-11-01') AND (datum < '2006-11-31')
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
SanThe schreef op 22.11.2006 13:35:
(datum > '2006-11-20') AND (datum < '2006-11-20')
Dit kan simpelweg niet.
En vroeger dan ... en later dan ...
Edit: Dit kan dus niet bij dezelfde datum
Dit kan wel dus:
(datum > '2006-11-01') AND (datum < '2006-11-31')
Dit kan simpelweg niet.
En vroeger dan ... en later dan ...
Edit: Dit kan dus niet bij dezelfde datum
Dit kan wel dus:
(datum > '2006-11-01') AND (datum < '2006-11-31')
Maar goed nu weet ik dus wat niet kan :) Maar stel ik wil in die query ook opnemen dat ik dezelfde datums heb. Hoe los ik dit dan op?
Ik heb dus een formulier waarin je 2x een datum selecteerd. 1x de VAN-datum en 1x de TOT-datum. Als je dus beide datums het zelfde neemt doet zich het probleem voor. Waarom werkt de <= en de >= dan niet in dit geval? De ene datum is dan toch groter of gelijk aan en de andere kleiner of gelijk aan. Dat is toch 2x TRUE?? OF niet :)?
Gewijzigd op 01/01/1970 01:00:00 door Jaws
(datum >= '2006-11-01') AND (datum <= '2006-11-31')
Werkt dus ook voor:
(datum >= '2006-11-20') AND (datum <= '2006-11-20')
Het is dan inclusief de ingegeven beide datums.
Kan een BETWEEN hier geen uitkomst bieden? Lijkt mij wel zo handig.
Goed maar dat is dus net wat ik geprobeerd had. En dat geeft dus raar genoeg 0 als resultaat. Terwijl er 100% zeker wel resultaten zijn op die dag.
Frank schreef op 22.11.2006 14:01:
Kan een BETWEEN hier geen uitkomst bieden? Lijkt mij wel zo handig.
Heb ik zelf nog nooit gebruikt, maar is vast een betere methode.
@Jaws: Staat de datum wel in het juiste veld TYPE? DATE (of DATETIME)
Edit: Typo.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Tevens raad ik je aan om slechts 1 query te gebruiken waarbij het AND-gedeelte variabel is, dat is een stuk beter te onderhouden:
Ik heb de datum opgeslagen in de database met de funtie NOW() in the query. Vervolgens maak ik een string van de variabelen verkregen van het form .
Op deze manier doe ik dat:
Code (php)
@Jurgen:
Ja aan die oplossing was ik ook aan het denken maar had toch echt gedacht dat het ook met 1 query zou moeten kunnen. Verder vraag ik me nu eigenlijk af dat als ik nu als datum 20-11-2006 pak en de ander 21-11-2006, wat hij dan nu doet. Ik krijg als ik die query invoer igg een resultaat. Maar dat resultaat is wel het zelfde met zowel de < en > als de <= en >= operator.
@Frank:
Damn, ben je me weer te snel af :). Ja die oplossing bevalt me wel zo hoef ik niet mijn helecode te gaan wijzigen. Ik denk dat dit de beste oplossing is in dit geval.
Gewijzigd op 01/01/1970 01:00:00 door Jaws