0

我每天在我的 postgres 数据库上运行几个查询,现在我决定学习 MySQL,并决定将我的数据库和查询迁移到 MySQL 服务器。

不幸的是,我无法转换查询的某些部分,尤其是以下部分:

DATE_PART('day', DATE_TRUNC('month', CURRENT_DATE) +  
        '1 MONTH - 1 DAY'::INTERVAL)::INTEGER

知道如何将其转换为在 MySql 上工作吗?

4

2 回答 2

1
SELECT DAY(LAST_DAY(CURRENT_DATE)) Day

输出:

| DAY |
-------
|  28 |

或人为地应用相同的逻辑

SELECT DAY(DATE_SUB(DATE_ADD(DATE_FORMAT(CURRENT_DATE ,'%Y-%m-01'), INTERVAL 1 MONTH), INTERVAL 1 DAY)) Day

这是工作示例sqlfiddle

于 2013-02-28T09:34:40.530 回答
0

我假设你想要当月的最后一天

DATE_TRUNC('month', CURRENT_DATE) --> 将日期减少到(第一天)当月 '1 MONTH - 1 DAY'::INTERVAL --> 再添加一个月并返回一天

MySQL 有LASTDAY(date),因此查询将转换为LASTDAY(now())然后您可以使用DAY(date).

于 2013-02-28T08:58:44.947 回答