MySQL для PostgreSQL: как изменить этот запрос SQL? - PullRequest
2 голосов
/ 20 декабря 2010

У меня есть этот запрос MySQL, который использует MONTH() и YEAR():

SELECT 
  MONTH(created_at) AS month, 
  YEAR(created_at) AS year 
FROM users 
GROUP BY MONTH(created_at), YEAR(created_at) 
ORDER BY YEAR(created_at), MONTH(created_at)

Как мне изменить этот запрос для работы с PostgreSQL?

Ответы [ 2 ]

4 голосов
/ 20 декабря 2010
SELECT 
  extract(MONTH from created_at) AS month, 
  extract(YEAR from created_at) AS year 
FROM users 
GROUP BY extract(MONTH from created_at), extract(YEAR from created_at) 
ORDER BY extract(MONTH from created_at), extract(YEAR from created_at) 

Вот последнее руководство
http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT

Кстати: это стандартный (ANSI) SQL, который также работает на MySQL.

2 голосов
/ 20 декабря 2010

http://www.postgresql.org/docs/9.0/static/functions-datetime.html

SELECT 
  EXTRACT(MONTH FROM created_at) AS month, 
  EXTRACT(YEAR FROM created_at) AS year 
FROM users 
GROUP BY EXTRACT(MONTH FROM created_at), EXTRACT(YEAR FROM created_at)
ORDER BY EXTRACT(YEAR FROM created_at), EXTRACT(MONTH FROM created_at)

Этот синтаксис должен работать на PostgreSQL, Oracle и Teradata

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...