Mysql 如何将此SQL语句转换为PostgreSQL?

Mysql 如何将此SQL语句转换为PostgreSQL?,mysql,sql,postgresql,Mysql,Sql,Postgresql,我有一个MySQL语句,它不会在PostgreSQL服务器上运行 以下是原始的MySQL查询: SELECT count(*) AS howmany FROM members WHERE member_status =1 AND member_sex = 'male' AND (YEAR( '2015-12-31' ) - YEAR( member_birthdate ) ) - ( RIGHT( '2015-12-31', 5 ) < RIGHT( member_bir

我有一个MySQL语句,它不会在PostgreSQL服务器上运行

以下是原始的MySQL查询:

SELECT count(*) AS howmany 
FROM members 
WHERE member_status =1 
AND member_sex = 'male' 
AND (YEAR( '2015-12-31' ) - YEAR( member_birthdate ) ) - 
    ( RIGHT( '2015-12-31', 5 ) < RIGHT( member_birthdate, 5 ) ) 
BETWEEN 27 AND 40;
我们的目标是,我想知道在2015-12-31年排位赛日期,有多少会员年龄在27岁到40岁之间。 我不知道如何转换查询的正确部分。

您可以使用以下函数:

SELECT COUNT(*) AS howmany 
FROM members
WHERE member_status =1 
  AND member_sex ='male'
  AND extract(year from age(timestamp '2015-12-31', member_birthdate))
      BETWEEN 27 AND 40;

你犯了什么错误?或者发布一些我们也可以使用的示例数据:)回答得好,并且很好地使用了
age
函数!
SELECT COUNT(*) AS howmany 
FROM members
WHERE member_status =1 
  AND member_sex ='male'
  AND extract(year from age(timestamp '2015-12-31', member_birthdate))
      BETWEEN 27 AND 40;