Avatar billede martin1000ben Nybegynder
02. marts 2005 - 01:03 Der er 13 kommentarer og
1 løsning

Imellem 2 datoer eller nul

SELECT *
FROM events
WHERE members_team = '5' start_dato = '0000-00-00' OR (start_dato > NOW() AND slut_dato < NOW())

Hvordan burde denne se ud for at virke?

Resultatet lyder
Hvis start_dato er 0000-00-00 og members_team = 5 så er alt ok
Hvis start_dato IKKE er 0000-00-00
så skal start_dato være højere end NUtiden og slut_dato mindre end NUtiden
Avatar billede martin1000ben Nybegynder
02. marts 2005 - 01:05 #1
MySQL 4.0.23 benyttes hvis det skulle have betydning :)
Avatar billede martin1000ben Nybegynder
02. marts 2005 - 01:08 #2
start_dato og slut_dato er selvfølgelig date felter :)
Avatar billede martin1000ben Nybegynder
02. marts 2005 - 01:09 #3
SELECT *
FROM events
WHERE members_team = '5' AND start_dato = '0000-00-00' OR (start_dato > NOW() AND slut_dato < NOW())

Mindre fejl fundet - men nu giver det slet ingen resultater :(
Avatar billede martin1000ben Nybegynder
02. marts 2005 - 01:13 #4
Indhold i datasen

ID start_dato      slut_dato
1  0000-00-00    0000-00-00
2  2005-01-01    2007-01-01
3  2004-01-01    2004-31-01

Kun id 1 der er fundet ovenfor
Avatar billede martin1000ben Nybegynder
02. marts 2005 - 01:17 #5
3  2004-01-01    2004-12-31
hehe :)

Resultatet burde give ID 1 og ID 2 ud.
Fejlen ligger nok ved AND imellem 5 og start_dato - men hvad skal den så være?
Avatar billede detox Nybegynder
02. marts 2005 - 01:40 #6
Tror du ikke det skal være:

SELECT *
FROM events
WHERE members_team = '5' AND start_dato = '0000-00-00' OR (start_dato > NOW() AND slut_dato > NOW())
Avatar billede bongo20 Nybegynder
02. marts 2005 - 01:40 #7
har du prøvet at sætte den første del i parantes også ?

SELECT *
FROM events
WHERE (members_team = '5' AND start_dato = '0000-00-00') OR (start_dato > NOW() AND slut_dato < NOW())
Avatar billede bongo20 Nybegynder
02. marts 2005 - 01:42 #8
ja du har da vist byttet om på < og >, men heller ikke som detrox skrvier,. sådan her:

SELECT *
FROM events
WHERE members_team = '5' AND start_dato = '0000-00-00' OR (start_dato < NOW() AND slut_dato > NOW())
Avatar billede detox Nybegynder
02. marts 2005 - 01:43 #9
Hov:

SELECT *
FROM events
WHERE members_team = '5' AND start_dato = '0000-00-00' OR (start_dato < NOW() AND slut_dato > NOW())

eller:

SELECT *
FROM events
WHERE members_team = '5' AND start_dato = '0000-00-00' OR (NOW() BETWEEN start_dato AND slut_dato)
Avatar billede detox Nybegynder
02. marts 2005 - 01:44 #10
bongo20 -> Ja, så det lige ;o)
Avatar billede martin1000ben Nybegynder
02. marts 2005 - 01:47 #11
SELECT *
FROM events
WHERE (members_team = 5 AND start_dato = '0000-00-00')
OR (members_team = 5 AND start_dato > NOW() AND slut_dato < NOW())");

Den finder kun det resultat med 0000-00-00 i :(
Avatar billede martin1000ben Nybegynder
02. marts 2005 - 01:49 #12
detox - jeg brugte den sidste du skrev :D
Avatar billede martin1000ben Nybegynder
02. marts 2005 - 01:49 #13
den virker fint tak for det :D
Vil du ha point må du lige smide et svar
Avatar billede detox Nybegynder
02. marts 2005 - 01:52 #14
Ok, velbekommen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester