Селектиране от БД по дата( 2013-07-26 11:30:00 )

uphero

Registered
Имам запизи в базта данни от сорта на 2013-07-26 11:30:00 и искам да извадя само резултатите които са преди днешната дата.
Примерно имам записи

2013-07-26 11:30:00
2013-07-26 11:30:00
2013-07-26 11:30:00
2013-07-26 11:30:00
2013-07-20 11:30:00

и от тях искам да взема само
2013-07-26 11:30:00
2013-07-26 11:30:00
2013-07-26 11:30:00
2013-07-26 11:30:00
тези за които още не е изтекла датата.
 
deam0n каза:
SELECT * FROM users WHERE date >= NOW();
Така няма ли да се изведат редовете, в които датата, часът и секундата, по-големи от сегашните?
Аз разбрах
uphero каза:
искам да извадя само резултатите които са преди днешната дата.
Аз бих направил така:
PHP:
$sql = "select * from date where date < ".date("Y-m-d")."00:00:00";
Това ще направи дата, изглеждаща така:
2013-22-07 00:00:00
и ще вземе резултатите преди полунощ този ден. Мисля, че това е идеята?
 
anonimen каза:
uphero каза:
искам да извадя само резултатите които са преди днешната дата.

Той е казал, което са преди днешната дата, но това според мен го е объркал. Виж примера, който е дал. Всички резултати са след днешната дата + е написъл: тези за които още не е изтекла датата
 
Не знам, нека uphero да си каже. Но ако това е идеята, то now() май пак не върши работа, защото ще изкара резултатите след днешна дата, но и тези, които са от днес, но са след 1 час примерно. Тогава според моя код трябва да се направи така:
PHP:
$sql = "select * from date where date > ".date("Y-m-d")."23:59:59";
 
$sql = "select * from date where date > ".date("Y-m-d")."23:59:59";

Освен, че в този код има една малка, едвам забележима грешка, може и без да вкарваш РНР във SQL, остави MySQL да свърши работата, вероятно малко по-бързо, от колкото да му подаваш стринг:

Код:
$sql = "select * from date where date > CURDATE()";
 
anonimen каза:
Не знам, нека uphero да си каже. Но ако това е идеята, то now() май пак не върши работа, защото ще изкара резултатите след днешна дата, но и тези, които са от днес, но са след 1 час примерно. Тогава според моя код трябва да се направи така:
PHP:
$sql = "select * from date where date > ".date("Y-m-d")."23:59:59";

NOW() функцията връща датата и часа. Точно ще изкара резултатите, които са от днес и са след 1 час.

Виж тука: http://www.w3schools.com/sql/func_now.asp
 
Ако полетото ти е datetime или timestamp :idea:
[sql]where date(`date`) < date(now())[/sql] ще ти свърши също работа ;-)
 

Back
Горе