PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Postgresql генерира_серия от месеци

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

Редактиране

Ако трябва да изчислите числото динамично, следното може да помогне:

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

Това изчислява броя на месеците от 2008-01-01 и след това добавя 12 върху него.

Но съм съгласен със Скот:трябва да поставите това в функция за връщане на набор, за да можете да направите нещо като 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. Как да актуализирате множество колони в PostgreSQL

  2. Как да надстроите PostgreSQL 11 до PostgreSQL 12 с нулев престой

  3. Как да създам индекс на полето JSON в Postgres?

  4. запазване на обект на python в таблица на postgres с туршия

  5. Postgres SELECT, където WHERE е UUID или низ