我想要一个无需修改就能在MySQL和Postgres上运行的查询(我正在从MySQL -> Postgres迁移,理想情况下,我希望在测试迁移时在这两个数据库上运行完全相同的查询,而不是不同的特定于数据库的查询)。
我最初的MySQL查询使用WEEKDAY:
SELECT WEEKDAY('2016-06-24');
+-----------------------+
| WEEKDAY('2016-06-24') |
+-----------------------+
| 4 |
+-----------------------+
1 row in set (0.00 sec)我知道Postgres有EXTRACT,但它不太一样(并且不能在MySQL上使用'dow‘):
SELECT EXTRACT(dow FROM '2016-06-24'::date);
date_part
-----------
5是否有一个函数/语句/查询可以在MySQL和Postgres上运行而无需修改,并且在MySQL上具有工作日的行为?
我希望避免在Postgres上为此行为创建自定义函数。
(实际查询使用列等,所以强制转换应该不是问题)
发布于 2016-06-25 01:40:49
我认为没有办法避免用户定义的函数:
create or replace function weekday (_date date)
returns integer as $$
select extract(isodow from _date)::int - 1;
$$ language sql immutable;
select weekday('2016-06-24');
weekday
---------
4https://stackoverflow.com/questions/38018927
复制相似问题