[ novilist @ 20.06.2005. 22:18 ] @
probao sam sa datediff funkcijom dobiti rezultat ali mi ne radi kako treba, pročitao sam da neke slabije verzije mySQL-a ne izvršavaju ovu naredbu pa me zanima da li postoji još neki način da dobijem isti rezultat.

kod koji sam koristio pisan je u asp i sa mySQL bazom verzije 4.0.21 (možda u kodu postoji greška?)

"'mySQL="SELECT predstava, datum1, datum2 FROM raspored WHERE DateDiff (""d"", PDate, datum1) >= '" & date() & "' and DateDiff (""d"", PDate, datum2) <= '" & date() & "' ORDER by datum1"

trebalo bi izlistati predstave samo koje su između tih datuma, ali to ne funckionira kako treba.
[ SmilieBG @ 21.06.2005. 06:19 ] @
2 greske, a obe ces i sam uociti iz sledeceg copy & paste sa mysql.com sajta:

DATEDIFF(expr,expr2)

DATEDIFF() returns the number of days between the start date expr and the end date expr2. expr and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation.

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
-> 1
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
-> -31

DATEDIFF() was added in MySQL 4.1.1.

Poz,
Sale
[ SmilieBG @ 21.06.2005. 06:21 ] @
A to sto tebi treba, mozes ovako da uradis:

sql = SELECT predstava, datum1, datum2 FROM raspored where datum1 >= $current and datum2 <= $current order by datum1;

gde je $current = date('Y-m-d'); (naravno, format datuma, treba da bude kao sto ti je i u bazi). Ovo bi 'trebalo' da radi ovako, nisam testirao :)

Poz,
Sale
[ novilist @ 21.06.2005. 07:12 ] @
ovo ne radi sa mysql bazom, prijavljuje mi grešku kada upišem "$current".(bez navodnika)

--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.323 / Virus Database: 267.7.3/15 - Release Date: 14.6.2005
[ Dejan Topalovic @ 22.06.2005. 01:25 ] @
@novilisti: Zamisli ni meni ne radi tvoj izraz:
Code:
mysql> "'mySQL="SELECT predstava, datum1, datum2 FROM raspored WHERE DateDiff (""d"", PDate, datum1) >= '" & date() & "' and DateDiff (""d"", PDate, datum2) <= '" & date() & "' ORDER by datum1"";
ERROR 1064 (00000): You have an error in your SQL syntax 
near '"'mySQL="SELECT predstava, datum1, datum2 FROM raspored WHERE DateDiff (""d"", P' at line 1


Lijepo ti pise u dokumentaciji kako se koristi naredba DATEDIFF. Pogledaj koliko parametara imas ti u svom izrazu, a koliko ih treba biti...

Inace, ono $current je user defined varijabla u PHP-u, ciju vrijednost proslijedjujes SQL upitu.

Osim toga, mogao bi koristiti izraz:
Code:

SELECT predstava, datum1, datum2
FROM raspored
WHERE NOW() BETWEEN
DATEDIFF(PDate, datum2)
AND
DATEDIFF(PDate, datum1)
ORDER BY datum1;

pod uslovom da broj dana dobijenih sa DATEDIFF usporedjujes sa nekim brojem, a ne sa datumom ( NOW() ).