Сравняване на датата с поле от тип timestamp

sentenello

Registered
Имам ето тази заявка
Код:
$sqlselect = mysql_query("SELECT * FROM programa WHERE data<DATE(now()) AND result='' order by data ASC");

Когато date< или е > от date(NOW()) няма проблем, но когато се опитвам да изведа с = не работи. Ясно ми е, че трябва да е точно датата и часът и затова "не работи".

Въпроса ми към вас е как да сравня само датата и да ми изкара полетата който имат днескашна дата без значение колко часа. :idea: :idea:
 
Код:
$_day = mktime(0, 0, 0, date('n'), date('j'), date('Y')); // днес от 00:00 часа

$now =time(); //времето в момента

$sqlselect = mysql_query("SELECT * FROM `programa` WHERE `data`>=$_day AND `data`<=$now ORDER BY `data` ASC");

ЗАБЕЛЕЖКА: всичко е във формат TIMESTAMP
 
embaka каза:
Код:
$_day = mktime(0, 0, 0, date('n'), date('j'), date('Y')); // днес от 00:00 часа

$now =time(); //времето в момента

$sqlselect = mysql_query("SELECT * FROM `programa` WHERE `data`>=$_day AND `data`<=$now ORDER BY `data` ASC");

ЗАБЕЛЕЖКА: всичко е във формат TIMESTAMP

Не стана.
Пробвах дори и така.

Код:
 $_day = mktime(0, 0, 0, date('n'), date('j'), date('Y')); // днес от 00:00 часа
 $tomorrow= mktime(0,0,0,date("n"),date("j") + 1,date("Y"));

$sqlselect = mysql_query("SELECT * FROM `programa` WHERE `data`>='$_day' AND `data`<='$tomorrow' ORDER BY `data` ASC");
 
По начина по който съм ти го дал работи 100%, в това съм сигурен и съм 100% сигурен, че нещо се объркал отново
 
embaka каза:
По начина по който съм ти го дал работи 100%, в това съм сигурен и съм 100% сигурен, че нещо се объркал отново

Добавил съм 1 ред с днескашна дата и час 21:30:00 и не ми го извежда както ти си ми го дал или както аз пробвах.
 
мм нищо :)
Празна страница, не съм дал и or die де, ама сега ще пробвам и ще пиша

EDIT:
Ето я и грешката.
Код:
Parse error: syntax error, unexpected T_STRING in /saita/faila.php on line 21
 
не че мога да знам от какво ти е породена грешката, но имаш някой { не затворена
 
Няма такова нещо... всичко си е наред :shock: :shock:

Ще ровя, пробвам и ако успея да се справя с проблема ми ще пиша.
П.С. Преди правех нещо като Date(NOW()) и ставаше, а сега не иска. Изглежда е различна ситуация и не може по този начин. :roll: :roll:
 
sentenello каза:
Няма такова нещо... всичко си е наред :shock: :shock:

Ще ровя, пробвам и ако успея да се справя с проблема ми ще пиша.
П.С. Преди правех нещо като Date(NOW()) и ставаше, а сега не иска. Изглежда е различна ситуация и не може по този начин. :roll: :roll:

NOW() ти взема времето сега, което е от сорта на 43534543543, а тая глупост, която правиш ти обръща датата на 07-31-2010. търсиш timestamp, а го преобразуваш в date(), помили какво се опитваш да направиш и какво искаш да изведеш и в какъв формат ти е записана датата в полето data
 
Полето data в бд ми е "timestamp"
Когато пробвам с ето този код
Код:
$sqlselect = mysql_query("SELECT * FROM `programa` WHERE `data`>=DATE(NOW()) ORDER BY `data` ASC") or die (mysql_error());
ми извежда тези който са с днескашна дата и следващи дати, а когато направя data==DATE(NOW()) ми извежда грешка.

Нещо подобно на това трябва да е, но не Date(NOW())
 
ти виждаш ли ква глупост си написал

data==DATE(NOW()) в sql заявка такова нещо не може да съществува

data=DATE(NOW()), но това == няма как да работи условието или да е равно на еди си какво или да е по <= или >= или !=, ама такова нещо == не може да се използва
 
ти не можеш май да разбереш, че след като имаш поле със запис на дата timestamp от формат 12312321321, не може да правиш заявка от рода на date(12-12-2010)

в случая това date(NOW()) ти е равносилно на това горе дето ти написах date(12-12-2010), ако датата в полето ти е 124354564 не може да търси по 12-12-2010, как да ти го обясня, че заявката ти няма да работи и това NOW() ти връща същия резултат като time(), само че NOW() се използва за времето сега в SQL, а time() в PHP
 
В базата данни полето дата записва ето така.
Код:
2010-08-14 17:00:00

Ако кажеш какво трябва да се направи за да си го направя както трябва ще го направя, но май нещо те изнервих ти само нареждаш без да даваш никакви обяснения кое как трябва да се направи, UNIX ала бала :lol:
 
ами щом ти излиза в базата така, значи не се записва в timestamp, това е отговора, значи проблема е в твоите обяснения, как няма да се изнерва, при положение, че знам какво ти давам и как работи, тоя формат е date

дори да е в timestamp, полето ти е във формат date, а трябва да е int
 
Не съм му задавал никакъв формат. Сигурно автоматично си става на Date ако не му зададеш.
Сега както е в date формат има ли начин да направя това което искам.
 
момент, ако смениш полето data да е във формат int, ще се записва в 112458436 и можеш лесно да обработиш после датата, и с кода който ти дадох в началото няма да имаш никакъв проблем
 
я с тая заявка ще стане по твоя начин както е в момента
Код:
$yesterday = date('Y-m-d 00:00:00', mktime(0, 0, 0, date("m") , date("d") - 1, date("Y"))); 

$sqlselect = mysql_query("SELECT * FROM `programa` WHERE `data`>='".$yesterday ."' AND `data`<=NOW() ORDER BY `data` ASC") or die (mysql_error());
 
Ако го направя integer както казваш, ще имам ли проблем с заявки от тоя тип?
Код:
$sqltodaybets = mysql_query("SELECT * FROM obosnovki where data>date(NOW()) order by data ASC");
 

Back
Горе