我每天在我的postgres数据库上运行几个查询,现在我决定学习MySQL并决定将我的数据库和查询迁移到MySQL服务器。
不幸的是,我无法转换查询的某些部分,特别是下面的部分:
DATE_PART('day', DATE_TRUNC('month', CURRENT_DATE) +
'1 MONTH - 1 DAY'::INTERVAL)::INTEGER
知道如何将其转换为在MySql上工作吗?
答案 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)
提取日期。