SQL date search range

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

DirkJan Heinen

DirkJan Heinen

05/06/2009 12:19:00
Quote Anchor link
Hallo

ik ben bezig met een uren script voor een intranet waar mensen hun uren in voeren en daar ook in kunnen zoeken..

nu krijg ik het zoeken bij de datums niet voor elkaar..
datums worden opgeslagen als dd-mm-yyyy

mijn test data:
Test data Internet 6.5 20-04-2009
Test data Internet 6,5 20-04-2009
Test data Internet 18 01-06-2009
Test data Internet 2 27-05-2009
Test data Internet 10 03-06-2009

als ik zoek:
uren.datum >= '02-04-2009'

dan laat hij "01-06-2009" niet zien terwijl dat pas 2 maand later is.
hoe moet ik dit doen?


Met vriendelijke groeten,
DirkJan Heinen



Edit.
mijn voledige sql opdracht voor het zoeken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
class uren {
    function
search($klant,$taak,$vDatum,$tDatum) {
        $return = array();
        $sql = "
        SELECT uren.*, taak.name AS taak
        FROM uren
        INNER JOIN taak ON taak.ID = uren.taakID
        WHERE
             uren.klant LIKE '%$klant%'
        AND
             taak.ID = '$taak'
        AND
            uren.datum >= '$vDatum'
        "
;
        $query = mssql_query($sql) or $this->error[] = mssql_get_last_message();
        
        while($row = mssql_fetch_assoc($query)) {
            $return[] = $row;
        }
    
        
        
        return $return;
    }
}

?>
Gewijzigd op 01/01/1970 01:00:00 door DirkJan Heinen
 
PHP hulp

PHP hulp

05/11/2024 07:58:49
 
Jelmer -

Jelmer -

05/06/2009 12:23:00
Quote Anchor link
Is het datum-veld wel van het type DATE? Ik meende dat MySQL datums als YYYY-MM-DD opsloeg.
 
DirkJan Heinen

DirkJan Heinen

05/06/2009 12:43:00
Quote Anchor link
het is geen MYSQL maar MSSQL
 
Afra ca

Afra ca

05/06/2009 13:10:00
Quote Anchor link
Minor notice: Vars buiten quotes....
 
Robert Deiman

Robert Deiman

05/06/2009 13:34:00
Quote Anchor link
En omdat het MSSQL is sla je een datum maar niet op zoals het hoort? Een datum moet je voor een computer om ermee te kunnen rekenen e.d. opslaan als 0000-00-00. Volgens mij hoort dat in MSSQL ook zo.

Het kan best zijn dat je wel een datum als zodanig mag invoeren, maar dat die 'm automatisch omzet naar de juiste vorm?

Wanneer je een datum als 0000-00-00 opslaat, dan is een "latere datum" altijd hoger dan een voorgaande, terwijl dat met 00-00-0000 niet zo is:

2008-08-10 (yyyy-mm-dd) is altijd kleiner dan 2008-09-02
maar 02-09-2008 is niet groter dan 10-08-2008 (tip: Haal die streepjes er eens tussen weg, dan snap je wat ik bedoel)
 



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.