- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет!
$sql = "SELECT DISTINCT(`zakaz_id`) FROM `zakaz_history` WHERE `date` BETWEEN '2018-12-06 00:00:00' AND '2018-12-12 23:59:59' ORDER BY `zakaz_id` DESC";
Выводит значения с уникальным полем zakaz_id но также выводит и те, у кого поле date выходит за заданный диапазон указанный в between (например выводит и те записи, где date = 01.04.2018 20:22:14). Не могу понять почему between не работает. Ткните плиз в мою ошибку, сразу на ум ничего не приходит.
Формат поля date в MySQL: timestamp (CURRENT_TIMESTAMP). Пример записи в поле date: 2018-04-09 22:51:49
Время к дате попробуйте добавить. И формат даты соблюдайте.
Время к дате попробуйте добавить. И формат даты соблюдайте.
Спасибо, подправил первый пост. Соблюдаю формат, время тоже указываю. Проблема все равно есть. Почему то выводятся записи у которых дата за пределами диапазона.
А зачем вам distinct, если поле уникальное?
---------- Добавлено 12.12.2018 в 20:18 ----------
Я проверил у себя в базе. Если указывать правильный формат даты, даже без времени правильно отрабатывает. Вы уверены, что у вас даты в поле лежат в одном формате?
но также выводит и те, у кого поле date выходит за заданный диапазон указанный в between (например выводит и те записи, где date = 01.04.2018 20:22:14)
1.04.2018 или все-таки 2018-04-01?
SHOW CREATE TABLE zakaz_history можете показать?
Выборка идет из таблицы содержащий записи логов звонков. Там поле zakaz_id не уникальное. Дубли есть, поскольку по одному заказу могут звонить несколько раз.
Я когда первый раз постил, не скопировал запрос а ручками написал, поэтому допустил опечатку.
Вот мой запрос:
$sql = "SELECT DISTINCT(`zakaz_id`) FROM `zakaz_history` WHERE `date` BETWEEN '2018-12-06 00:00:00' AND '2018-12-12 23:59:59' ORDER BY `zakaz_id` DESC";
Оффтоп, на zakaz_id и date индексы проставьте.
Вы явно что-то где-то упускаете и нам это не показываете. Сделайте 3 скрина: просто содержимое таблицы, ваш запрос и результат его выполнения (желательно на том месте, где выводятся неправильные записи, и с выводом даты, чтобы было видно, что запись не соответствует условию)
Вы явно что-то где-то упускаете и нам это не показываете.
Вы абсолютно правы. Спасибо всем за помощь и содействие. Строка запроса изначально была правильной. Проблема была в другом. У меня внутри еще 1 выборка была, которая косячила.
Бывает, что когда программишь вечером, мозг уже не так шустро справляется с задачами как утром.
Всем большое спасибо. Удачного вечера!
Спасибо, уже сделано