Модераторы: Aliance, IZ@TOP, SamDark, skyboy, MoLeX, ksnk, ksnk, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MySQL Выборка по дате 
:(
    Опции темы
apostolnikolai
Дата 3.7.2018, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Здравствуйте! Подскажите что я делаю не так.

Есть таблица 

__________________________________
--Cat№ -----StartData------StopData-------
------------------------------------------------
--9       ----- 03.07.2018 -- 03.08.2018 ---
--10     ----- 04.08.2018 -- 04.09.2018 ---
==========================

Не получается сделать выборку по дате

Код

$SystemData = 11.07.2018

$query ="SELECT * FROM Catalog_List WHERE DATE_FORMAT(StartDate, '%Y-%m-%d')>='".$SystemData."' AND DATE_FORMAT(StartDate, '%Y-%m-%d')<='".$SystemData."'";

PM MAIL   Вверх
Vardoulacha
Дата 3.7.2018, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 11.8.2005

Репутация: нет
Всего: 8



Я просто оставлю это здесь тык
PM MAIL   Вверх
apostolnikolai
Дата 3.7.2018, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Код

$query ="SELECT * FROM Catalog_List WHERE DATE(StartDate) BETWEEN '02.07.2018' AND '02.07.2018'";

А в ответ белый экран

Добавлено через 4 минуты и 13 секунд
Код

$query ="SELECT * FROM Catalog_List WHERE DATE(StartDate) BETWEEN '2018-07-03' AND '2018-07-09'";


Белый экран (вывода данных нет)
PM MAIL   Вверх
apostolnikolai
Дата 3.7.2018, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



А вот так выдает данные 

Код

$query ="SELECT * FROM Catalog_List WHERE DATE_FORMAT(StartDate, '%Y-%m-%d')>='".$SystemData."' OR DATE_FORMAT(StopDate, '%Y-%m-%d')<='".$SystemData."'";


А при AND нет

Код

$query ="SELECT * FROM Catalog_List WHERE DATE_FORMAT(StartDate, '%Y-%m-%d')>='".$SystemData."' AND DATE_FORMAT(StopDate, '%Y-%m-%d')<='".$SystemData."'";

PM MAIL   Вверх
whatisnot
Дата 3.7.2018, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 14.12.2014

Репутация: нет
Всего: 2



 И для кого же условие? И есть ведь BETWEEN.
PM MAIL   Вверх
apostolnikolai
Дата 3.7.2018, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Ок я в php нуб а как его использовать если даты из двух колонок Start и Stop
PM MAIL   Вверх
whatisnot
Дата 3.7.2018, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 14.12.2014

Репутация: нет
Всего: 2



Если в двух и первая, это минимальное значение, а вторая максимальное, то WHERE StartDate >= value AND StopDate <= value, и форматирования дат никакого не требуется. Вот только как можно получить диапазон мин/макс если параметр у обеих равен одному и тому же значению $SystemData, или макс. может быть менее мин., или наоборот? 

Это сообщение отредактировал(а) whatisnot - 3.7.2018, 14:36
PM MAIL   Вверх
apostolnikolai
Дата 3.7.2018, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Код

$query ="SELECT * FROM Catalog_List WHERE StartDate >= '2018-07-05' AND StopDate <= '2018-07-06'";

Нет данных

Код

$query ="SELECT * FROM Catalog_List WHERE StartDate >= 2018-07-05 AND StopDate <= 2018-07-06";

тоже нет данных
PM MAIL   Вверх
whatisnot
Дата 3.7.2018, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 14.12.2014

Репутация: нет
Всего: 2



Код

--
-- Структура таблицы `tmp`
--

CREATE TABLE `tmp` (
  `id` int(11) UNSIGNED NOT NULL,
  `StartDate` date NOT NULL,
  `StopDate` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `tmp`
--

INSERT INTO `tmp` (`id`, `StartDate`, `StopDate`) VALUES
(1, '2018-05-01', '2018-07-03'),
(2, '2018-04-03', '2018-07-03'),
(3, '2018-06-13', '2018-07-03');

--
-- Индексы сохранённых таблиц
--

--
-- Индексы таблицы `tmp`
--
ALTER TABLE `tmp`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--



Запрос 'SELECT * FROM tmp WHERE StartDate >= "2018-05-01" AND StopDate <= "2018-07-03"'

Результат

Код

Array
(
    [0] =>
        (
            [id] => 1
            [startdate] => 2018-05-01
            [stopdate] => 2018-07-03
        )

    [1] =>
        (
            [id] => 3
            [startdate] => 2018-06-13
            [stopdate] => 2018-07-03
        )

)



PM MAIL   Вверх
apostolnikolai
Дата 3.7.2018, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Вот так работает Если StartDate в базе равно 2018-07-03 а StopDate равно 2018-07-12
 
Код

$query ="SELECT * FROM Catalog_List WHERE StartDate >= '2018-07-03' OR StopDate <= '2018-07-12'";


А так нет
Код

$query ="SELECT * FROM Catalog_List WHERE StartDate >= '2018-07-04' OR StopDate <= '2018-07-04'";


Добавлено через 2 минуты и 6 секунд
Простите не OR а AND

Добавлено через 6 минут и 59 секунд
Все ОГРОМНОЕ СПАСИБО !!! Нашел ошибку!
PM MAIL   Вверх
Google
  Дата 20.6.2019, 14:02 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0785 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.