powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как вытащить даты в промежутке 11:00 - 19:00 ?
14 сообщений из 14, страница 1 из 1
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102244
нужны все строки, где added между 11:00 и 19:00
при этом added = timestamptz(0)
хотел так, но нет
Код: sql
1.
2.
WHERE took >= '2021-10-01 00:00:00'
    AND added BETWEEN '11:00:00'::time AND '19:00:00'::time



через IF в ф-и только?
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102246
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик,

where pg_catalog.time(added) between ....
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102258
о, спасибо
а есть такой же чит, чтобы сразу отсеять выходные?
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102272
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
о, спасибо
а есть такой же чит, чтобы сразу отсеять выходные?


Вы ещё попросите отсеивание государственных праздников корректно работающее с 1800 года )).

PS:
dow
The day of the week as Sunday (0) to Saturday (6)
SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 5

или

isodow
The day of the week as Monday (1) to Sunday (7)
SELECT EXTRACT(ISODOW FROM TIMESTAMP '2001-02-18 20:38:40');
Result: 7

Смотря какая наумерация вам привычнее.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102286
ну эту то я сам использую
но там получается сначала WITH
а потом SELECT ... WHERE dow NOT IN (6,7)
возможно всё-таки лучше функцией построчно сразу отсеивать?
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102287
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик,

ммм, а зачем with?
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102294
Melkij, а как пропустить эту строку?
мне вот, например, надо не просто там +1 сделать, а надо среднее высчитать, причём по датам
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102298
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
Melkij, а как пропустить эту строку?
мне вот, например, надо не просто там +1 сделать, а надо среднее высчитать, причём по датам


Уточни задачу...
может через filter (where ...)
может через просто условие в where ... общем


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102309
мне надо посчитать дельту со всех (took - added) AS delta_ts в периоде 11-19 без выходных
причём сначала этот sum(took - added) надо перевести в секунды: extract(epoch FROM delta_ts)
т.е. round(extract(epoch FROM delta_ts) /cnt /60) -- а в итоге в минутах
сгруппировав всё по датам и uid
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102313
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
мне надо посчитать дельту со всех (took - added) AS delta_ts в периоде 11-19 без выходных
причём сначала этот sum(took - added) надо перевести в секунды: extract(epoch FROM delta_ts)
т.е. round(extract(epoch FROM delta_ts) /cnt /60) -- а в итоге в минутах
сгруппировав всё по датам и uid


А что мешает в where просто нужные условия описать?

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102315
во WHERE описано всё, что можно
загвоздка в дельте
я же не могу просто так написать: sum(took - added) / count(*)
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102517
хотя есть avg(), но она тоже не вывозит полностью
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102611
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
хотя есть avg(), но она тоже не вывозит полностью


вообще не понятно что именно у вас не получается... попробуйте подробно сформулировать что именно вы хотите подсчитать
так чтобы можно было по этому ТЗ программу или запрос написать...
в идеале с тестовыми примерами.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
как вытащить даты в промежутке 11:00 - 19:00 ?
    #40102637
Maxim Boguk, написал ещё вчера, через WITH
всем спасибо
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как вытащить даты в промежутке 11:00 - 19:00 ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]