Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]Źle podaje wyniki między (BETWEEN)
Forum PHP.pl > Forum > Przedszkole
palixmp
Witam. Mam takie oto zapytanie:
  1. SELECT IDZam, NazwaOdbiorcy, DataZamowienia, StanRealizacji FROM ZAMOWIENIE WHERE StanRealizacji='N' AND NazwaOdbiorcy='Nowak' AND (DataZamowienia BETWEEN '2008-08-20' AND '2008-08-27' );


I owo zapytanie nie pokazuje mi zamówień z dnia 2008-08-27 dlaczego?? Pole DataZamowienia ma taką postać 2008-08-27 19:19:39 . Jeśli np wybiore datę 2008-08-28 to te zamówienia z dnia 2008-08-27 się dopiero pokazuja, dlaczego??

Umial by ktoś na to odpowiedziec??

Z góry dzieki
kaem
Polecam manuala http://dev.mysql.com/doc/refman/5.0/en/com...perator_between
a w szczególności ten fragment
Cytat
For best results when using BETWEEN with date or time values, you should use CAST() to explicitly convert the values to the desired data type. Examples: If you compare a DATETIME to two DATE values, convert the DATE values to DATETIME values. If you use a string constant such as '2001-1-1' in a comparison to a DATE, cast the string to a DATE.

Chyba powinno pomóc.
JoShiMa
  1. (DataZamowienia BETWEEN '2008-08-20 00:00:00' AND '2008-08-27 23:59:59' );


Domyślnie jeśli masz pole datetime (data+godzina) to 2008-08-27 oznacza 2008-08-27 00:00:00
palixmp
Dzieki JoShiMa za podpowiedźexclamation.gif Właśnie z tym mam problem, może będziesz umiałm mi pomoc:) mam takei zapytanie:
  1. (DataZamowienia BETWEEN CAST('$OD' AS DATETIME) AND CAST('$DO' AS DATETIME))

zmienne OD i DO przekazywane są z takiego tam skryptu kalendarza, który przekazuje tylko np. 2008-08-28, a mi są potrzebne całe wartości razem z godziną.

Wiec moje pytanie, jak dodać godziny do tych zmiennych? Próbowałem coś takiego:
  1. (DataZamowienia BETWEEN CAST('$OD' || '00:00:00' AS DATETIME) AND CAST('$DO' || '23:59:59' AS DATETIME))


Bo chodzi o to żeby do zmiennej OD dodal 00:00:00 a do zmiennej DO 23:59:59, żeby byly całe dnie. Próbowałem przez CONCAT czyli || ale niestety to nie dziala:(

Pomoże ktośquestionmark.gif

A moze przy nadawaniu nazw zmiennych mozna jakoś dodać te wartości godziny?? Chodzi mi o to miejsce:
  1. <?php
  2. $OD = $_POST['OD'];
  3. $DO = $_POST['DO'];
  4. ?>

Jakoś +'00:00:00:', abo jakis inny sposób??
JoShiMa
A nie wystarczy po prostu:
  1. <?php
  2. $OD = $_POST['OD'].'00:00:00';
  3. $DO = $_POST['DO'].'23:59:59';
  4. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.