栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL中PostgreSQL的date_trunc

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL中PostgreSQL的date_trunc

提取函数似乎很有用,我发现的日期函数解决了我的一些问题,但是有没有办法复制PostgreSQL的date_trunc?

确实,

EXTRACT
看起来这将是此特定情况下最接近的匹配项。

您在PG中的原始代码:

WHERe date_trunc('month', QUERY_DATE) BETWEEN     date_trunc('month', now()) - INTERVAL '4 MONTH' AND     date_trunc('month', now() - INTERVAL '1 WEEK')

使用

EXTRACT

WHERe EXTRACT(YEAR_MonTH FROM QUERY_DATE)      BETWEEN          EXTRACT(YEAR_MonTH FROM NOW() - INTERVAL 4 MONTH)      AND          EXTRACT(YEAR_MonTH FROM NOW() - INTERVAL 1 WEEK)

尽管在功能上应该相同,但这实际上是在进行比较之前将日期整理为YYYYMM字符串。

另一种选择是使用

DATE_FORMAT
重建日期字符串并将其强制到月初:

WHERe DATE_FORMAT(QUERY_DATE, '%Y-%m-01')      BETWEEN          DATE_FORMAT(NOW() - INTERVAL 4 MONTH, '%Y-%m-01')      AND          DATE_FORMAT(NOW() - INTERVAL 1 WEEK, '%Y-%m-01')

另外,请注意,即使对字段进行了索引,MySQL在处理日期范围方面也确实很差。如果您不小心的话,最终可能会进行全表扫描。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368502.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号