Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как вытащить даты в промежутке 11:00 - 19:00 ? / 14 сообщений из 14, страница 1 из 1
06.10.2021, 09:46
    #40102244
как вытащить даты в промежутке 11:00 - 19:00 ?
нужны все строки, где 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
06.10.2021, 09:50
    #40102246
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить даты в промежутке 11:00 - 19:00 ?
бабушкин зайчик,

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


Вы ещё попросите отсеивание государственных праздников корректно работающее с 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
06.10.2021, 10:55
    #40102286
как вытащить даты в промежутке 11:00 - 19:00 ?
ну эту то я сам использую
но там получается сначала WITH
а потом SELECT ... WHERE dow NOT IN (6,7)
возможно всё-таки лучше функцией построчно сразу отсеивать?
...
Рейтинг: 0 / 0
06.10.2021, 10:56
    #40102287
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить даты в промежутке 11:00 - 19:00 ?
бабушкин зайчик,

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


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


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
06.10.2021, 12:19
    #40102309
как вытащить даты в промежутке 11:00 - 19:00 ?
мне надо посчитать дельту со всех (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
06.10.2021, 12:24
    #40102313
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить даты в промежутке 11:00 - 19:00 ?
бабушкин зайчик
мне надо посчитать дельту со всех (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
06.10.2021, 12:32
    #40102315
как вытащить даты в промежутке 11:00 - 19:00 ?
во WHERE описано всё, что можно
загвоздка в дельте
я же не могу просто так написать: sum(took - added) / count(*)
...
Рейтинг: 0 / 0
07.10.2021, 07:40
    #40102517
как вытащить даты в промежутке 11:00 - 19:00 ?
хотя есть avg(), но она тоже не вывозит полностью
...
Рейтинг: 0 / 0
07.10.2021, 11:14
    #40102611
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить даты в промежутке 11:00 - 19:00 ?
бабушкин зайчик
хотя есть avg(), но она тоже не вывозит полностью


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

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


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