将特定行从Postgresql转换为mysql

时间:2013-02-28 08:07:59

标签: mysql postgresql

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

不幸的是,我无法转换查询的某些部分,特别是下面的部分:

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

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

2 个答案:

答案 0 :(得分: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

的示例

答案 1 :(得分:0)

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

  

DATE_TRUNC('month',CURRENT_DATE) - >将日期缩短为(第一天)   当前月份'1月 - 1天':: INTERVAL - >再增加一个月   并得到一天回来

MySQL有LASTDAY(date),因此查询会转换为LASTDAY(now()),然后您可以使用DAY(date)提取日期。