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

Discussion in 'PHP' started by NNNS, 20 Dec 2007.

  1. NNNS

    NNNS Elder - Старейшина

    Joined:
    26 May 2007
    Messages:
    44
    Likes Received:
    28
    Reputations:
    -5
    Собственно сабж.
    Дата в базе формата гггг-мм-дд.

    Как сделать выборку за предыдущий день и месяц?
     
    1 person likes this.
  2. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    может что то типа этого
    PHP:
    $viborka=date("Y-m-d");
    'SELECT *FROM table WHERE date LIKE '$viborka' ';
     
  3. NNNS

    NNNS Elder - Старейшина

    Joined:
    26 May 2007
    Messages:
    44
    Likes Received:
    28
    Reputations:
    -5
    XopoIII, будут выводиться результаты с текущей датой
     
  4. n1†R0x

    n1†R0x Elder - Старейшина

    Joined:
    20 Jan 2007
    Messages:
    728
    Likes Received:
    376
    Reputations:
    235
    угу, только разбить на три переменных типа int и потом передавать строку, которая будет включать в себя 3 эти переменные.
    int - чтобы мат. операции совершать, типа d--; и т.д.
     
    1 person likes this.
  5. VampiRUS

    VampiRUS Elder - Старейшина

    Joined:
    31 Dec 2005
    Messages:
    210
    Likes Received:
    105
    Reputations:
    57
    PHP:
    <?php  
    echo date('Y-m-d',time()-60*60*24),"\n";//вчара
    echo date('Y-m-d',time()-60*60*24*7);//неделю назад
    ?>
     
    1 person likes this.
  6. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Воспользуйся функцией 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)); #Неделю назад
    ?>
     
    1 person likes this.
  7. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Господи, да какие же вы все извращенцы! Ну нафик задачу, которая решается средствами SQL размазывать по коду и пихать в запрос?! Неужели никто не слышал про interval?

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

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