1

Temat: SELECT problem z data

Witam,
Problem laika,
Chciałbym aby dla pracownika został wyświetlony staż jego pracy w miesiącach.

Funkcja
extract(field from timestamp) oraz date_part(text, timestamp) obcinają tylko do miesięcy
a wynikiem funkcji age jest 43 years 9 mons 27 days

SELECT "FirstName", "LastName",
     date_trunc('month',age(current_date,"HireDate")) AS "staż"
FROM "Employee"

Czy można wyświetlić wynik funkcji AGE w postaci np. tylko dni lub miesięcy?
Lub w jaki sposób wyodrębnić tylko miesiące?

dzięki wink

2

Odp: SELECT problem z data

zerknij na poniżsy przykład

with d (od_daty,do_daty) as (values
('1410-07-15'::date,'2015-02-02'::date))
select dane.*,extract(year from wiek) *12 + extract(month from wiek) as uplynel_miesiecy,extract(day from wiek) as uplynelo_dni
from (select od_daty,do_daty,age(do_daty,od_daty) as wiek,do_daty-od_daty as wiek_w_dniach from d) dane

3

Odp: SELECT problem z data

4

Odp: SELECT problem z data

można z pól typy timestamp, date - popatrz poniżej (zakładam ze bazę masz ustawioną w języku polskim wiec dołączam wersję z tłumaczeniem

with d (od_daty,do_daty) as (values
('1410-07-15'::date,'2015-02-02'::date))
select dane.*,extract(year from wiek) *12 + extract(month from wiek) as uplynel_miesiecy,extract(day from wiek) as uplynelo_dni,to_char(dane.od_daty,'month') as miesiec_od_daty_en,to_char(dane.od_daty,'TMmonth') miesiec_od_daty_pl
from (select od_daty,do_daty,age(do_daty,od_daty) as wiek,do_daty-od_daty as wiek_w_dniach from d) dane