Hi, I just noticed I was wrong, the original SQL statement would return rows, but only if BEGIN = CURDATE(). I stated it would never happen, and that's wrong. Sorry. :) -Micah On Tuesday 13 September 2005 9:42 pm, Micah Stevens wrote: > Hi Jordan, > > Syntactically, there is no restriction on OR'ing or AND'ing conditions. You > could very well do this: > > Select somefield where otherfield = 1 and otherfield = 2; > > Of course, otherfield would never be both 1 and 2, so this is a worthless > select statement, however, my point is, there would be no syntax error. > > Same deal with this: > SELECT * FROM WEEKS WHERE BEGIN >= CURDATE() AND END <= CURDATE(); > > This means, give me everything that begins before today or today, and after > today or today. Which of course is silly, that can't happen. So you'll > never get anything back. However, there's nothing syntactically wrong with > the statement. > > Replacing it by 'OR' give you all results, so it's just as silly why even > have the 'WHERE' condition in the first place? I think reclmaples needs to > re-analyze what he's trying to accomplish, but again, there's nothing > syntactically (stupid spellcheck) wrong with the statement. > > I'm going out on a limb here, but it seems what the point is to get > everythign that's not today, in which case you'd just say that: > > SELECT * FROM WEEKS WHERE BEGIN != CURDATE(); > > Or, if you only want today: > SELECT * FROM WEEKS WHERE BEGIN = CURDATE(); > > I hope that helps? not sure, I may as I said be missing the goal. > > -Micah > > On Tuesday 13 September 2005 9:14 pm, Jordan Miller wrote: > > Micah, > > Oh, my bad. I was trying to remember how I did something like this > > before, stringing together a lot of "WHERE"s. You're right, though, > > it wasn't "WHERE", it was "OR". > > > > Rich, > > I think you need "OR" instead of "AND", OR else I'm just totally out > > to lunch tonight: > > SELECT * FROM WEEKS WHERE BEGIN >= CURDATE() OR END <= CURDATE(); > > > > The syntax error is that something cannot be >= AND <= the same thing > > at the same time! > > > > I have had this problem before in the past. You say to yourself, > > well, I need all of the records, so that intuitively makes you choose > > "AND" when in SQL it should technically be "OR" (you want the > > records that are true for each of these operators separately, NOT at > > the same time, which for most records is impossible). > > > > Also, you may want to take away one of the "=" signs, or you may get > > something "=" to CURDATE() twice (not sure how SQL handles this). > > > > Maybe try (taking out one of the "="): > > SELECT * FROM WEEKS WHERE BEGIN >= CURDATE() OR END < CURDATE(); > > > > Maybe it's just late over here. Has anyone else run into this same > > thing? > > > > Jordan > > > > On Sep 13, 2005, at 10:36 PM, Micah Stevens wrote: > > > You can't do that in SQL, that would give you a big fat syntax error. > > > > > > On Tuesday 13 September 2005 7:45 pm, Jordan Miller wrote: > > >> Rich, > > >> > > >> Did you try putting "WHERE" twice? > > >> > > >> try: > > >> SELECT * FROM WEEKS WHERE BEGIN >= CURDATE() and WHERE END <= > > >> CURDATE; > > >> > > >> Jordan > > >> > > >> On Sep 13, 2005, at 9:08 PM, reclmaples wrote: > > >>> I am trying to write a statement that will basically do this: > > >>> > > >>> SELECT * FROM WEEKS WHERE BEGIN >= CURDATE() and END <= CURDATE; > > >>> > > >>> But for some reason I can only use one CURDATE() reference in my sql > > >>> statement, does anyone know why? Is there a way I can get around > > >>> this? > > >>> > > >>> > > >>> Any help would be greatly appreciated. > > >>> > > >>> Thanks > > >>> -Rich > > >>> > > >>> -- > > >>> PHP Database Mailing List (http://www.php.net/) > > >>> To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > -- > > > PHP Database Mailing List (http://www.php.net/) > > > To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php