singlepost

MySQL + PHP (DATE) << На главную или назад  

Люди подскажите у меня в БД стоит временной тип для даты, и мне нужно сравнить равна ли эта дата сегодняшнему числу…

D БД дата храниться как 2008-01-02
В ПХП
$dat=date("y-m-d");

45 ответов в теме “MySQL + PHP (DATE)”

  1. 18
    Никита Миклушов ответил:

    Уважаемые профи, так как ток начал изучение MySql не подскажите как выветси таблицу по убыванию значений некого поля?

  2. 17
    Олександр Дідок ответил:

    … ORDER BY imja_polya DESC;

  3. 16
    Жека Кирпичев ответил:

    К тому, что а) их программисты – ламеры или б) они поддерживают совместимость с MySQL 4 . Ни то, ни другое не исключено.

  4. 15
    Олександр Дідок ответил:

    Согласны. Вот тока один прикол. Практически все бесплатные и небесплатные CMS до сиих пор не используют P.S.
    К чему бы это?…

  5. 14
    Жека Кирпичев ответил:

    Олександр, я это все говорил для того, чтобы Никита, увидев такой пример кода, не решил, что это пример *нормального* кода :) Он иногда допустим, а иногда (если БД не поддерживает prepared statements) – даже необходим, но, вообще говоря, его надо избегать как огня. Вроде бы, на эту тему мы согласны.

  6. 13
    Никита Миклушов ответил:

    Спасибо люди за посты, учту все советы =)

  7. 12
    Олександр Дідок ответил:

    Жека, вы лучше спросите людей, знают ли они что такое предопределенные запросы (подготовленные инструкции) :)
    думаете много людей их знают? некоторые не то что на 5тый сиквел не перешли, они могут еще на 4.0 висеть, где p.s. еще не было. Некоторые конечно используют Pear:DBв котором реализовано p.s. но о самом существовании этого могут и не знать.
    К тому же потеря производительности не только в оракл есть без использования p.s. В MySQL их использование дает большой прирост в производительности 100% безопасность от инъекций и ускорение обмена данными между приложением и сервером. Но первое и третье зачастую веб-програмистов мало интересует. А вот второе – это да. Но частично данная проблема решается слешированими, заменами символов и использованием реал_ескейп фенкции пхп. Вопрос не стоял КАК безопасно и с макс.производительностью решить проблему. Как выяснилось проблема вообще не в сиквеле была, а в невнимательности :)

  8. 11
    Олександр Дідок ответил:

    Жека, улыбнуло :) )) ваш комментарий мне напоминает програмерский анекдот – как написать вывод "Hello,world"?

    <?php
    echo "Hello, world";
    ?>

    ннееее, неправильно:

    <?php
    // на случай масштабируемости
    $var = "Hello, world";
    // на всякий случай
    $_POST=$_GET=$_COOKIE=$_REQUEST=NULL;
    // проверка существования, куда ж без нее
    if (isset($var)){
    // если не она- печатаем дефолт, иначе строковую переменную
    echo (strval($var)!="Hello, world"?"Hello, world":strval($var));
    };
    unset($var); // на всякий случай
    die(); // тоже на всякий случай
    ?>

  9. 10
    Жека Кирпичев ответил:

    Никита, главное – НИКОГДА не делай так, как написано у #2 . Используй prepared statements.

    Если в MySQL это чревато "всего лишь" зияющей дырой в безопасности и насмешками коллег, то в Oracle, например, это чревато еще и гигантской потерей производительности и полной потерей масштабируемости.

  10. 9
    Жека Кирпичев ответил:

    В данном конкретном случае в MySQL дыры в безопасности не будет, т.к. эти данные не содержат пользовательского ввода, но уж лучше всегда писать правильно, чем иногда писать такую фигню, потому что, дескать, "прокатит".

  11. 8
    Никита Миклушов ответил:

    спс

  12. 7
    Юрий Лисичкин ответил:

    чета там unixtimestamp и from_unixtime или как то так =)
    google.com -> date time mysql

  13. 6
    Никита Миклушов ответил:

    Вот черт придеться все к типу int приводить…

    Никто не занет про преоброзования типов от date в INT?

  14. 5
    Константин Дерец ответил:

    Александр правильно написал, только у вас в коде ошибка…
    правильно $dat=date("Y-m-d");

  15. 4
    Даниил Малых ответил:

    Храните лучше дату в INT в UTC.

  16. 3
    Никита Миклушов ответил:

    +1 к #4 Оказалось что первая должна быть Y а не y…
    Спасибо за помощ всем!

  17. 2
    Олександр Дідок ответил:

    "SELECT * FROM `table` WHERE `date`='{$dat}'"

  18. 1
    Юрий Лисичкин ответил:

    select che_te_nado from tvoja_tablica where trunc(tvoj_stolbec_dati) = trunc(now())

    можно типа такого %)
    trunc вроде обрезает дату до дня
    ЗЫ. лениво в доки лезть, мб что-то неправильно =)
    ЗЫЫ. и вообще то что можно ( если можно %) ) сделать с помощью базы данных нужно делать с помощью базы данных =)

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.