SELECT*FROMTABLEWHERE mdata >='06.12.2013'AND mdata<='07.12.2013'AND orders='1'ORDERBY id DESCLIMIT 0 ,10 ;;
выборка происходит нормально на первый взгляд, но как я понимаю сравнивается только число без месяца и года. Как можно сделать чтоб происходил поиск по полной дате, а не только число?
----- Умные мысли приходят тогда, когда все глупости уже сделаны...
kuller
Отправлено: 11 Декабря, 2013 - 12:10:47
Частый посетитель
Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009
Помог: 2 раз(а)
Flash_PR пишет:
зачем в таком формате хранить дату? Неудобно же?
записал такой формат чтоб при выводе даты не выполнять с ней операцию по форматированию.
Но вот поиск не работает в любом формате.
Мелкий
Отправлено: 11 Декабря, 2013 - 12:14:54
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Мелкий пишет:
Пишите и сравнивайте стандартный Y-m-d.
В базу и пишите так. В обычный date.
kuller пишет:
чтоб при выводе даты не выполнять с ней операцию по форматированию.
Именно про это и говорят - преждевременная оптимизация - корень зла.
----- PostgreSQL DBA
Flash_PR
Отправлено: 11 Декабря, 2013 - 12:32:12
Посетитель
Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013 Откуда: Санкт-Петербург
Помог: 6 раз(а)
kuller пишет:
записал такой формат чтоб при выводе даты не выполнять с ней операцию по форматированию.
Завтра тебе потребуется в другом формате выводить дату......что будешь делать?
----- Умные мысли приходят тогда, когда все глупости уже сделаны...
kuller
Отправлено: 11 Декабря, 2013 - 14:20:30
Частый посетитель
Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009
Помог: 2 раз(а)
Flash_PR пишет:
Завтра тебе потребуется в другом формате выводить дату......что будешь делать?
это не потребуется.
тема не про то какой формат используется. а про то что не происходит поиск. Выше я писал что пробовал изменить даты в БД на Y-m-d из формы приходит дата в формате d.m.Y отформатировал ее в формат Y-m-d и вставляю переменную в sql запрос. Результат тот же. В чем может быть проблема?
esterio
Отправлено: 11 Декабря, 2013 - 14:24:25
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
как раз таки если это дата значит соответсвенно тип поля должен быть DATE, а форматирование - економия на спичках. В вашем же случае никак(ну или какие-то костили, которые хуже того-же форматирования)
Prizma
Отправлено: 11 Декабря, 2013 - 15:05:23
Посетитель
Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012 Откуда: Санкт-Петербург
Помог: 5 раз(а)
Можно составить запрос в котором ты сначала будешь сравнивать год, потом месяц, а потом день. Запрос будет немного заморочным, вот примеры и инфомарция по запросам "справа на лево": http://www[dot]oooportal[dot]ru/?cat=article&id=1224
Мелкий
Отправлено: 11 Декабря, 2013 - 15:12:38
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Prizma пишет:
Можно составить запрос в котором ты сначала будешь сравнивать год, потом месяц, а потом день.
тема не про то какой формат используется. а про то что не происходит поиск.
Именно про формат, потому что это и есть причина и следствие.
Перевели в тип date? Проверили данные после конвертации? Есть строки, которые должны были быть найдены по запросу? Покажите эти строки и именно тот запрос, который эти строки не возвращает.
----- PostgreSQL DBA
kuller
Отправлено: 11 Декабря, 2013 - 15:34:16
Частый посетитель
Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009
Помог: 2 раз(а)
Мелкий пишет:
Перевели в тип date? Проверили данные после конвертации? Есть строки, которые должны были быть найдены по запросу? Покажите эти строки и именно тот запрос, который эти строки не возвращает.
за места типа DATE ставил datetime. и не работало. Сейчас попробовал тип DATE вроде работает. Сейчас еще раз все проверю. если что подниму тему. Спасибо
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.