rub*_*ube 5 mysql sql database postgresql
编写可以在MySQL和PostgreSQL中运行的查询(一个sql文件),到目前为止一切正常,除了以下内容:
SELECT MONTH(Date), YEAR(Date) FROM Ticket;
Run Code Online (Sandbox Code Playgroud)
用于从Ticket表中的Date列中提取月份编号(9,10,11 ..)和年份(2011年,2012 ..)(是的,我无法更改此列的名称).它在MySQL中工作正常,但是当我在PostgreSQL中运行查询时,它会为MONTH()和YEAR()提供以下错误消息.
ERROR: function month(date) does not exist
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)
经过一段时间的研究后,我发现了其他一些可以在Postgres中完成工作的函数,但我担心这些函数可能无法在MySQL中运行.非常期待任何可能的解决方案.
好吧,如果您在字段前面使用别名并使用EXTRACT,则相同的查询将适用于PostgreSQL和MySQL:
SELECT EXTRACT(MONTH FROM t.Date) AS MonthOfDate,
EXTRACT(YEAR FROM t.Date) AS YearOfDate
FROM Ticket t;
Run Code Online (Sandbox Code Playgroud)