Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   MySQL. Как реализовать выборку за предыдущий день, месяц (https://forum.antichat.xyz/showthread.php?t=56232)

NNNS 20.12.2007 06:29

MySQL. Как реализовать выборку за предыдущий день, месяц
 
Собственно сабж.
Дата в базе формата гггг-мм-дд.

Как сделать выборку за предыдущий день и месяц?

XopoIII 20.12.2007 06:44

может что то типа этого
PHP код:

$viborka=date("Y-m-d");
'SELECT *FROM table WHERE date LIKE '$viborka' '


NNNS 20.12.2007 06:47

XopoIII, будут выводиться результаты с текущей датой

n1†R0x 20.12.2007 06:48

угу, только разбить на три переменных типа int и потом передавать строку, которая будет включать в себя 3 эти переменные.
int - чтобы мат. операции совершать, типа d--; и т.д.

VampiRUS 20.12.2007 07:57

PHP код:

<?php  
echo date('Y-m-d',time()-60*60*24),"\n";//вчара
echo date('Y-m-d',time()-60*60*24*7);//неделю назад
?>


Isis 20.12.2007 09:58

Воспользуйся функцией mktime - она корректно обрабатывает отрицательные даты.
PHP код:

<?php
echo date("M-d-Y"mktime(000date("m"), date("d") - 1)); #Вчера
echo date("M-d-Y"mktime(000date("m"), date("d") - 7)); #Неделю назад
?>


groundhog 20.12.2007 10:59

Господи, да какие же вы все извращенцы! Ну нафик задачу, которая решается средствами SQL размазывать по коду и пихать в запрос?! Неужели никто не слышал про interval?

Цитата:

select CURRENT_TIMESTAMP - interval 1 day;
select CURRENT_TIMESTAMP - interval 1 month;
Если нужно вычесть более извращённый период, тогда воспользуйтесь функцией DATE_SUB(), если нужно отформатировать полученный результат, воспользуйтесь функцией DATE_FORMAT(). Да и вообще - курите мануалы... Покурите, например, тут:

http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html


Время: 05:29