Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Фильтр по дате в Power Query
 
Добрый день!

Буду благодарен за помощь. Нужно отредактировать запрос к БД MySql, чтобы выводились не все строки (объявления о продаже недвижимости), а только за последние сутки. Отдельно сделать запрос с фильтром за 3-е суток. Даты в таблице предоставлены в формате Timestamp. В БД хранятся объявления за год (более 1 млн.), а с ипользованием фильтра по дате будет всего пара тысяч.

Создал дополнительный пользовательский столбец, где Timestamp преобразуется в нормальный вид даты, но фильтр все равно не получается настроить. Когда выставляю в столбце даты фильтр\день\сегодня запрос зависает и не выполняется. Видимо нужно фильтровать Timestamp. Когда в столбце Timestamp указал фильтр "больше или равно" числа соответствующего 00 ч. 00 мин. сегодняшнего дня все норм фильтруется, но как по-другому сделать фильтрацию не знаю.

Подскажите, пожалуйста, как настроить фильтр?
 
ДОбрый день!
Файл-пример?  
 
Александр, пример запроса? Там только логин и пароль к БД MySql и выбор нужной таблицы - боюсь, что его не могу предоставить. А сама таблица состоит из 53 столбцов и более млн. строк... Прошу прощения, не могу понять пример чего нужно предоставить.
 
Dmiter, вам нужен запрос на SQL, который вы будете вносить в окошко "Инструкция SQL" при подключении к БД (тогда в PQ вы получите только нужные вам 2к строк и фильтрацию выполнит сама БД) или запрос на языке M для фильтрации миллиона строк полученных из БД в PQ чтобы получить искомые две тысячи строк?
 
PooHkrd, если честно, только начинаю сам во всем этом разбираться. В глубине души понимаю, что любые операции делать лучше на сервере, чтобы не грузить систему, но язык SQL мне не знаком. А в Power Query все интуитивно понятнее. Буду благодарен, если скажете, как лучше на ваш взгляд. Для составления запроса в SQL какие данные нужны?
 
Для составления запроса SQL нужно знать язык SQL. Если не знаете то лучше в рабочую БД кривыми руками не лезть, ибо череповато последствиями. А в чем у вас проблема при обработке загруженного из БД 1кк строк из вашего текста не очень понятно. Если нужны объявы только за сегодня, то вы вроде бы все правильно делаете, но почему зависает запрос не очень понятно. Попробуйте перед фильтрацией задать тип столбца как дату. На картинке эти данные имеют тип any и выглядят как дата/время. Зависание может быть и из-за этого.
И выложите все таки запрос, который зависает, явки и пароли измените в данном случае проблема не из-за них.
Изменено: PooHkrd - 28 Ноя 2018 16:18:10
 
Так как ответа на форуме никто не дал, пришлось "лезть в БД кривыми руками" :) Потратил  пол дня,  чтобы написать одну маленькую строчку кода. Возможно, что есть другое решение, но так как абсолютно не знаю sql, мне простительно.

Возможно кому-то пригодится:
Код
WHERE date_publ > (select TIMESTAMPDIFF (SECOND, '1970-01-01 00:00:00', CURDATE())),

где date_publ - дата в timestamp

Если надо, к примеру, за 3 последних дня вывести:
Код
WHERE date_publ > (select TIMESTAMPDIFF (SECOND, '1970-01-01 00:00:00', CURDATE())-172800)

Понятно, что перед этой строкой идет оператор select с указанием таблицы и столбцов для вывода.
Изменено: Dmiter - 6 Дек 2018 19:39:30
Страницы: 1
Читают тему (гостей: 1)
Наверх