TransWikia.com

Как отнять 1 месяц от даты

Stack Overflow на русском Asked on December 30, 2021

У меня есть запрос

WITH crimes_count AS
  (SELECT *
   FROM
     (SELECT *
      FROM
        (SELECT category,
                MONTH AS mth,
                         COUNT(*) OVER(PARTITION BY category, MONTH
                                       ORDER BY MONTH)
         FROM streetlevelcrimes) AS a
      GROUP BY a.category,
               a.mth,
               a.count
      ORDER BY a.mth) AS b)
SELECT *
FROM crimes_count AS a
JOIN crimes_count AS b ON a.category = b.category
WHERE FORMAT(a.mth, 'YYYY-MM') = add_months(FORMAT(a.mth, 'YYYY-MM'), -1)  # Вот тут мне нужно отнять 1 месяц

Дата хранится в формате TEXT и выглядит следующим образом: '2018-01', ('YYYY-MM').
Мне надо конвертировать текст в дату и отнять от этой даты месяц, по данному запросу выдает ошибку

No function matches the given name and argument types. You might need to add explicit
type casts.

One Answer

Вам нужны функции to_date и to_char:

SELECT to_char(to_date('2018-01', 'YYYY-MM') - INTERVAL '1 month', 'YYYY-MM');

Результат:

 to_char 
---------
 2017-12
(1 row)

Answered by Ainar-G on December 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP