SQL update по дата

taj_mahal

Registered
Здравейте, имам едно питане относно SQL: искам да обновя данните в дадено поле от дадена колона използвайки за пояснение в where клаузата датата от друга колона, която е с формат „2011-09-27 11:39:37.777“. В случая обаче аз искам да обновя полето използвайки в where клаузата само датата, без часа и секундите след нея . Как може да стане това? С Getdate() ми взима до секундата датата :? :shock:
 
PHP:
$zaqvka=mysql_query("SELECT `datata` FROM `table`");

while($row=mysql_fetch_assoc($zaqvka)) {

$row_date=$row['datata'];

$datata = explode(" ", $row_date);
$date=$datata[0];
$chas=$datata[1]; 


echo "Old date:".$date."<br>";
echo "Old hour:".$chas;

$newdate="19.01.2012";

$arraypices=array($newdate, $chas);
$datefor=implode(" ", $arraypices);


echo "<br><br><br>THE NEW DATE IS:<br><b>".$datefor."</b>";

echo " <br> ------------------------ <br>";

}
 
Взимаш датата от базата данни, ръгаш я в strtotime() и след това с date() си определяш формата.

PHP:
//взимаш тука датата от базата данни

$time = strtotime($row['date']);

echo date("Y-m-d", $time);

препоръчвам ти да ползваш unix timestamp за запазване на дата и време. По-лесно се форматира и използва.
 
Mожеш да отрежеш датата с функцията DATE_FORMAT( <поле>, '%Y-%m-%d' ). Виж следното нещо какво връща и го адаптирай към твоя случай, като замениш now() с името на колоната си:
[sql]SELECT DATE_FORMAT( now( ) , '%Y-%m-%d' )[/sql]

Ето и малко примери:
[sql]SELECT DATE_FORMAT( now( ) , '%Y-%m-%d' ) AS OnlyDate, DATE_FORMAT( now( ) , '%H:%i:%s' ) AS OnlyTime, now( ) AS FullDateTime[/sql]
 
Също така може и да ползваш DATE() функцията на MySQL :)
[sql]SELECT * FROM tablica WHERE DATE(pole_data)="2011-12-31"[/sql]
 

Горе