Честно говоря не могу дать адекватного ответа почему так. Думаю, что во втором случае будет лучше также применить сокращённую запись, т.к. это условие используется только для определения значения переменной, как и в первом случае.
Вы ничего не путаете. Я догадывался, что можно это реализовать только средствами SQL. Но не нашёл тогда функции. Спасибо, буду знать, что они всё таки есть.
Часто при разработке с использованием абрстракций на уровне БД и выше (различные фреймворки, CMS, библиотеки классов/функций и т. п.) использование SQL напрямую затруднено. Потом уже, на стадии оптимизации, можно определять текущую БД и для тех из них, которые поддерживают специфические функции/синтаксис писать их нативные выражения (если это обещает дать выигрыш по оптимизируемому параметру), а для тех, которые не поддерживают (частный «кандидат» SQLite) оставлять обработку на уровне PHP.
Можно и наоборот, конечно, сначала «завязаться» на конкретную БД, тот же MySQL 5, а потом реализовывать независимость от реализации БД, но, по личному опыту, обычно приходится много изменений вносить в PHP-код, если слишком сильно «интегрировать» приложение и БД
Определение периодов времени по текущей дате