В базе есть такие даты: 14.04.2017 04.06.2017 11.06.2017 10.07.2017 Мне нужно вывести только за текущий месяц даты из базы. Подскажите пожалуйста как реализовать в php 5.3
А тип данных в базе CHAR? Если так то: PHP: $d = date('m.Y'); $query = "SELECT * FROM table WHERE xxx LIKE '%$d'" Что-то типа того
Отредактировать даты, записав их в формате, более подходящем для хранения дат. И после этого чудесным образом заработают выборки.
Дело в том что нужно будет тогда переписывать весь движок, а он весит только на пхп фалах 230mb. Как то бы не очень горю желанием переписывать километры кодов. --- Добавлено --- Спасибо большое! Помогло. У меня ещё вопрос, как мне из списка в той же базе удалить записи прошлого месяца?
@DJTIMOHA, тут по аналогии, только с датами посложнее PHP: $d = date('m.Y', mktime(0, 0, 0, 1, date('n') - 1, date('Y'))); $query = "DELETE FROM table WHERE xxx LIKE '%$d'" @igordata, Может этот движок создавал злостный ненавистник западной формы записи даты, несмотря на то что дата в базе хранится в секундах. А размер такой большой из-за того что эти даты приходится обрабатывать.
я охотно поверю, что там всяких модулей сторонних хоть на 500 мегабайт, плюс фреймворк на двести. но чтобы "движок"... нет. там код, который работает с датами в бд (туда и обратно) скорее всего встречается в двадцати, даже хоть в ста местах, и его исправить не великое дело. Реально займёт ну час-два работы. Другой вопрос, если не охота лезть а вдруг ай боюс боюс. Типа, я лучше окостылю сейчас, а потом пусть другие ебутся. Вот в это я верю. --- Добавлено --- форма и способ хранения - это разные вещи. Если она хранится именно так, значит она хранится в текстовом поле. А если её хранить в поле правильного типа, то она сможет извлекаться в любой форме.
=) слушай, ты хочешь засунуть пятку в анус, чтобы не обкакаться на бегу. и кажется, что это сработает, но нет.
Этож западная манера писать даты - я перепутал месяц и число: PHP: $d = date('m.Y', mktime(0, 0, 0, date('n') - 1, 1, date('Y'))); А что за ошибка то выпадает? Получается удаляло январские записи)
m - это числовое представление месяца с ведущим 0 n - это просто числовое представление месяца именно 'n' Хорошо бы логи SQL посмотреть. Или логи веб-сервера.