Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Помощь по выгрузке данных за последний месяц.  [new]
nachPro___23-3
Member

Откуда:
Сообщений: 13
Добрый день, вопрос такой...
Есть поле t_fn_date, в таблице tbl

Нужно выгружать данные за последний месяц (битвином желательно)

Что то типа такого :
t_fn_date between trunc((sysdate-1),'MM') and (trunc(last_day(sysdate-1))+1 - 1/(86400))
Но это для Оракловой версии
6 июн 21, 13:14    [22331896]     Ответить | Цитировать Сообщить модератору
 Re: Помощь по выгрузке данных за последний месяц.  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4785
nachPro___23-3,

Для начала сформулируйте что такое "последний месяц" однозначным образом.
Тогда и запрос легко пишется
Я как минимум 3 трактовки этого понятия знаю (и подозреваю что можно еще несколько придумать).


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
6 июн 21, 13:25    [22331899]     Ответить | Цитировать Сообщить модератору
 Re: Помощь по выгрузке данных за последний месяц.  [new]
nachPro___23-3
Member

Откуда:
Сообщений: 13
Maxim Boguk,

Надо выгружать последний месяц, определять его по sysdate -1
Я выгружаю вечером данные за вчера

Когда будет новый период, допустим 1-ое число, то запрос нам вернет данные с + новым днем и запишем его в текущий период
6 июн 21, 13:57    [22331902]     Ответить | Цитировать Сообщить модератору
 Re: Помощь по выгрузке данных за последний месяц.  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4785
nachPro___23-3
Maxim Boguk,

Надо выгружать последний месяц, определять его по sysdate -1
Я выгружаю вечером данные за вчера

Когда будет новый период, допустим 1-ое число, то запрос нам вернет данные с + новым днем и запишем его в текущий период


ума не приложу что такое sysdate...
дайте определение "последнего месяца" нормальным русским языком формально.



--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
6 июн 21, 14:59    [22331917]     Ответить | Цитировать Сообщить модератору
 Re: Помощь по выгрузке данных за последний месяц.  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1516
nachPro___23-3
Добрый день, вопрос такой...
Есть поле t_fn_date, в таблице tbl

Нужно выгружать данные за последний месяц (битвином желательно)

Что то типа такого :
t_fn_date between trunc((sysdate-1),'MM') and (trunc(last_day(sysdate-1))+1 - 1/(86400))
Но это для Оракловой версии

sysdate() --> now()
trunc(date) --> date_trunc()

Справка по функциям даты-времени в PG
6 июн 21, 16:10    [22331928]     Ответить | Цитировать Сообщить модератору
 Re: Помощь по выгрузке данных за последний месяц.  [new]
nachPro___23-3
Member

Откуда:
Сообщений: 13
Maxim Boguk,

sysdate -ф-ция в Oracle, я его привел лишь в пример

И показал пример выборки данных за последний месяц на текущий день (Oracle)
Нужна аналогия для postgres
7 июн 21, 07:17    [22332070]     Ответить | Цитировать Сообщить модератору
 Re: Помощь по выгрузке данных за последний месяц.  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4785
nachPro___23-3
Maxim Boguk,

sysdate -ф-ция в Oracle, я его привел лишь в пример

И показал пример выборки данных за последний месяц на текущий день (Oracle)
Нужна аналогия для postgres


И я все еще продолжаю настаивать на формальном описании задачи с примером(примерами).
Вот на сейчас вам за какой период данные нужны?

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
7 июн 21, 10:23    [22332117]     Ответить | Цитировать Сообщить модератору
 Re: Помощь по выгрузке данных за последний месяц.  [new]
nachPro___23-3
Member

Откуда:
Сообщений: 13
Maxim Boguk, Нужно выгружать данные ща текущий месяц с его начала и до его окончания , но не забыть про -1 день, промежуток нужен от начала месяца до (sysdate-1) или (current_date-1) нужен конец дня current_date -1
7 июн 21, 16:10    [22332399]     Ответить | Цитировать Сообщить модератору
 Re: Помощь по выгрузке данных за последний месяц.  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4785
nachPro___23-3
Maxim Boguk, Нужно выгружать данные ща текущий месяц с его начала и до его окончания , но не забыть про -1 день, промежуток нужен от начала месяца до (sysdate-1) или (current_date-1) нужен конец дня current_date -1


t_fn_date>=date_trunc('month', now()) and t_fn_date<date_trunc('day', now())


скорее всего будет самым простым.



--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
7 июн 21, 16:31    [22332413]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить