2014-07-17 5 views
0

Этот запрос помогает мне вернуть предыдущий месяц, указав фактический месяц как параметр.MS SQL server to postgresql

SELECT SUBSTRING(CONVERT(VARCHAR(10), DATEADD(MONTH, DATEDIFF(MONTH, 0, '01-'+'2014-05') - 1, 0), 105),4,10) 

, например, здесь запрос возвращает: '04 -2014'

так, как я могу сделать samething в PostgreSQL, принимая во внимание, что PostGreSQL не использует:

DATEDIFF, Функции DATEADD?

+0

см. [Датированный postgresql] (http://www.sqlines.com/postgresql/how-to/datediff) и [dateadd of postgresql] (http://www.sqlines.com/postgresql/how-to/DateAdd) –

ответ

0

Использование to_char() и to_date():

select to_char(to_date('2014-05' || '-01', 'YYYY-MM-DD') - interval '1 month', 'MM-YYYY') 

Я хотел бы призвать вас использовать формат "YYYY-MM" вместо "ММ-YYYY", если у вас есть выбор. Первый год делает возможным заказ по стоимости.