За последние 24 часа нас посетили 62093 программиста и 1789 роботов. Сейчас ищут 849 программистов ...

Как сравнить только дату в столбце mysql типа Datetime

Тема в разделе "PHP для новичков", создана пользователем Zerox, 21 апр 2012.

  1. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    Имеется столбец типа datetime.
    Имеется $_GET переменная с датой (без времени)
    Нужно сделать выборку из таблицы с записями, где столбец datetime подходит по дате.
    Предложения?
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    предложение посмотреть ман про функции работы с датой, например extract()

    я привык работать с датой-временем как unix timestamp, переношу эти значения в MySql буквально как INT, поэтому такую задачу решаю через t.datefield between t1 and t2
     
  3. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    Спасибо. Вот только такими функциями никогда раньше не пользовался.
    Хотел сделать такой запрос:
    Код (Text):
    1. $query = "SELECT * FROM `premiere` WHERE `datetime`='".$_GET['date']."' ORDER BY `Id` DESC";
    Но он сверяет с $_GET['date'] полностью все значение `datetime`
    Куда мне вставить
    Код (Text):
    1. SELECT EXTRACT(YEAR_MONTH_DAY FROM "1999-07-02 01:02:03");
    ?
    Заранее благодарю
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    как-то так: extract(тип from `premiere`.`datetime`) = моё_значение

    offtopic: даже временно не подставляй $_GET['var'] напрямую в SQL-выражение. помни об инъекциях. нет ничего более живучего чем временное )
     
  5. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    а, т.е. extract вместо mysql_query?
    вообще до сих пор понять не могу, откуда именно функция будет забирать значения, мне ведь надо из конкретной записи из конкретного столбца...
    Спасибо, а как тогда "обезопасить" запрос? Какие проверки\изменения делать с переменными?
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Экранированием
     
  7. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    Вообще надеялся на ссылку с наиболее грамотной статьей по этому поводу. Ну да ладно.
    Объясните мне, пожалуйста, как использовать функцию extract, когда мне нужно найти все записи, где дата в столбце datetime совпадает с $_GET['date'] (она уже типа YYYY-MM-DD). Заранее спасибо.
     
  8. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    ну и еще регуляркой отсеять лишнее, чтобы не отправлялось...
     
  9. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    еще раз