【发布时间】:2016-10-27 09:35:36
【问题描述】:
我想要一个无需修改即可在 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 上的 WEEKDAY 行为?
我想避免在 Postgres 上为此行为创建自定义函数。
(实际查询使用列等,所以转换应该不是问题)
【问题讨论】:
-
我对此表示怀疑。如果它们都允许日期减法和相同的模运算符,则可以使用
(date - known_date) % 7。但我不认为他们这样做。
标签: mysql postgresql extract compatibility weekday