PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgresql generuje_serie miesięcy

select DATE '2008-01-01' + (interval '1' month * generate_series(0,11))

Edytuj

Jeśli chcesz obliczyć tę liczbę dynamicznie, pomocne mogą być następujące czynności:

select DATE '2008-01-01' + (interval '1' month * generate_series(0,month_count::int))
from (
   select extract(year from diff) * 12 + extract(month from diff) + 12 as month_count
   from (
     select age(current_timestamp, TIMESTAMP '2008-01-01 00:00:00') as diff 
   ) td
) t

Oblicza to liczbę miesięcy od 2008-01-01, a następnie dodaje do niej 12.

Ale zgadzam się ze Scottem:powinieneś umieścić to w funkcji zwracającej zestaw, aby móc zrobić coś takiego jak select * from calc_months(DATE '2008-01-01')



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zmienić hasło użytkownika PostgreSQL?

  2. Jak parsować JSON w postgresql

  3. Read Committed jest koniecznością w przypadku rozproszonych baz danych SQL zgodnych z Postgres

  4. Przegląd różnych węzłów planu pomocniczego w PostgreSQL

  5. INSERT INTO ... RETURNING - niejednoznaczne odniesienie do kolumny