千恋*万花

  • 首页
  • 个人简历
  • 文章分类
    • 后端开发
    • 运维
    • 基础知识
    • 笔记
    • 工作运维记录
    • 随笔
    • 未分类文章
萌奈の笔记簿
分享我的努力,希望为你助力
  1. 首页
  2. 后端开发
  3. MySQL
  4. 正文

MySQL 转 PostgreSQL (holo)

2021-04-01 5797点热度 21人点赞 0条评论

语法区别

3. 关于日期、时间的提取

将 timestamp 类型的数据,把小时、分钟等提取出来。

--mysql
    SELECT hour(time) AS timeHour
    FROM   cart
    WHERE  ......;

--PostgreSQL (holo) 方法一
    SELECT DATE_PART('hour', time) as timeHour
    FROM   cart
    WHERE  ......;

--PostgreSQL (holo) 方法二
    SELECT EXTRACT(hour FROM time) AS timeHour
    FROM   cart
    WHERE  ......;

其中DATE_PART(field, source) 与 extract() 两者等效,第一个参数可选以下内容:
* century 世纪
* decade 年份 ÷ 10
* year 年
* month 对于timestamp值,它是一年里的月份数(1-12);对于interval值, 它是月的数目,然后对 12 取模(0-11)
* day 日
* hour 小时
* minute 分钟
* second 喵
* microseconds 秒域(包括小数部分)乘以 1,000,000 。请注意它包括全部的秒。
* milliseconds 秒域(包括小数部分)乘以 1,000 。请注意它包括完整的秒。
* dow 每周的星期几 , 星期日(0),星期六(1)
* doy 一年的第 x 天
* epoch
* isodow
* isoyear
* timezone
* timezone_hour
* timezone_minute

(参考资料 / 详细资料 连接)

GROUP BY

将MySQL中包含GROUP BY的代码,直接迁移到PGSQL中,有概率会遇到这个问题:
[42803] ERROR: column "table.colName" must appear in the GROUP BY clause or be used in an aggregate function

错误:"cart.id"列 必须出现在GROUP BY子句中或在聚合函数中使用

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: mysql PostgreSQL 数据库
最后更新:2022-10-27

初音萌奈

我是练习时长 三年半 的后端开发程序员 谢谢你参观我的博客! 本网站现已支持IPv6 ☞ 个人简历 ☜

点赞
< 上一篇
下一篇 >
文章目录
  • 语法区别
    • 3. 关于日期、时间的提取
    • GROUP BY

COPYRIGHT © 2025 HatsuneMona ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

晋ICP备17007130号-4