Помогите составить запрос

Тема в разделе "Базы данных", создана пользователем Smile, 3 апр 2011.

Модераторы: latteo
  1. Smile

    Smile Нарушитель

    Регистр.:
    12 ноя 2006
    Сообщения:
    157
    Симпатии:
    11
    Привет всем, помогите составить правельный запрос... есть таблица...

    [​IMG]

    через пхп беру дату выполнения скрипта.... дальше нужно выбрать все не наступившие даты...

    составил sql запрос но он не правельный...

    $sql = "SELECT * FROM .... WHERE year >= '$year' AND month >= '$month' AND day >= '$day' AND hour >= '$hour' AND min >= '$min' AND sec >= '$sec'";

    как сделать чтоб запрос выбирал не наступившие еще даты... помогите...
     
  2. Maza

    Maza

    Регистр.:
    3 июл 2007
    Сообщения:
    255
    Симпатии:
    115
    Запрос правильный, может дату не правильно берёшь? Можешь кусок скрипта выложить, процесс быстрее пойдёт)
     
  3. exn

    exn Постоялец

    Регистр.:
    22 янв 2010
    Сообщения:
    146
    Симпатии:
    23
    Откройте для себя тип данных datetime ;)
     
    ukrlist нравится это.
  4. Smile

    Smile Нарушитель

    Регистр.:
    12 ноя 2006
    Сообщения:
    157
    Симпатии:
    11
    datetime не подходит

    Добавлено через 46 секунд
    PHP:
    $year date("Y");
    $month date("n") - 1;
    $day date("j");
    $hour date("h");
    $min date("i");
    $sec date("s");

    $sql "SELECT * FROM polls WHERE year >= '$year' AND month >= '$month' AND day >= '$day' AND hour >= '$hour' AND min >= '$min' AND sec >= '$sec'";
    голова совсем не варит... нужно чтоб сначала проверял год, потом месяц, потом день, час,мин,сек...

    запрос что выше не правельно берёт так как к примеру если есть запись год 2012, месяц 02 , а щас 2011 месяц 04 то по годам запрос пройдет, а по месяцу нет.... так как 04 > 02...
     
  5. Maza

    Maza

    Регистр.:
    3 июл 2007
    Сообщения:
    255
    Симпатии:
    115
    Можно сделать вложенные
    Код:
     if { if { if else { else { 
    ну итд и если год не тот, то выходим.
     
  6. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    как вариант соединить значения полей в строку (datetime) и дальше можно работать как с датой
    Код:
    SELECT *
    FROM polls
    WHERE CONCAT(year,'-',month,'-',day,' ',hour,':',min,':',sec)>=NOW()
    
     
  7. xRay_TFB

    xRay_TFB Постоялец

    Регистр.:
    17 мар 2010
    Сообщения:
    60
    Симпатии:
    35
    1. Взять запросом запись из БД
    2. Сконвертить в Datetime
    3. Сравнить с системной датой.

    Самый правильный и простой путь.