Re: collecting employees who completed 5 and 10 years in the current month
От | Szymon Guz |
---|---|
Тема | Re: collecting employees who completed 5 and 10 years in the current month |
Дата | |
Msg-id | CAFjNrYvHUwXJz_d9hWmcjEy5U=geTmTdxck1sVqdweJdf-jmaA@mail.gmail.com обсуждение исходный текст |
Ответ на | collecting employees who completed 5 and 10 years in the current month (Arup Rakshit <aruprakshit@rocketmail.com>) |
Ответы |
Re: collecting employees who completed 5 and 10 years in
the current month
|
Список | pgsql-general |
On 30 June 2014 12:38, Arup Rakshit <aruprakshit@rocketmail.com> wrote:
I have employee table. Where I have a column joining_date. Now I am looking for a way to get all employee, who completed 5 years, 10 years current month. How to do so ? I am not able to figure this out.Regards,
Arup Rakshit
Hi,
take a look at this example:
I've created a sample table:
create table users(id serial, joining_date date);
create table users(id serial, joining_date date);
and filled it with sample data:
insert into users(joining_date) select now() - (j::text || 'days' )::interval from generate_series(1,10000) j;
Then the query showing up all users who complete 5 and 10 years this month can look like:
with u as (
select id, date_trunc('month', age(now()::date, joining_date)) age
from users
)
select *
from u
where u.age in ('5 years', '10 years');
with u as (
select id, date_trunc('month', age(now()::date, joining_date)) age
from users
)
select *
from u
where u.age in ('5 years', '10 years');
- Szymon
В списке pgsql-general по дате отправления: