当前位置: 首页 > news >正文

wordpress做小说网站网站开发工程师和前端

wordpress做小说网站,网站开发工程师和前端,手机app开发制作推荐,南宁seo网站排名优化从精度、索引、到 Java 入参的完整梳理在日常开发中,时间字段的设计与查询往往最容易踩坑:精度到底选到秒还是毫秒?timestamp(0) 和 timestamp(3) 差多少?用 DATE_TRUNC 会不会让索引失效?Java 想按季度查询该怎么传参…

从精度、索引、到 Java 入参的完整梳理

在日常开发中,时间字段的设计与查询往往最容易踩坑:精度到底选到秒还是毫秒?timestamp(0)timestamp(3) 差多少?用 DATE_TRUNC 会不会让索引失效?Java 想按季度查询该怎么传参?本文基于 PostgreSQL 与 MySQL(5.7/8.0)最新行为,一次性把高频问题讲透。


1. 时间精度:秒、毫秒、微秒到底差在哪?

数据库声明方式存储精度示例值占用字节
PostgreSQLtimestamp(0)2025-07-28 15:30:008
PostgreSQLtimestamp(3)毫秒2025-07-28 15:30:00.1238
PostgreSQLtimestamp(6)微秒(默认)2025-07-28 15:30:00.1234568
MySQLtimestamp(0)2025-07-28 15:30:004
MySQLtimestamp(3)毫秒2025-07-28 15:30:00.1234+1=5
MySQLtimestamp(6)微秒2025-07-28 15:30:00.1234564+3=7

⚠️ 注意:

  • PostgreSQL 固定 8 字节,精度只影响“显示位”;

  • MySQL 的 fsp(小数秒精度)会额外占用 0–3 字节


2. 函数导致索引失效?牢记“左值原则”

无论 PostgreSQL 还是 MySQL,只要对索引列做了函数运算或隐式转换,B-Tree 索引都会失效

写法是否走索引原因
WHERE DATE_TRUNC('month', create_time) = '2025-07-01'列被函数包裹
WHERE create_time >= '2025-07-01' AND create_time < '2025-08-01'范围查询,列保持原样

推荐实践

  • Java 直接传入 LocalDateTime 的起止时间,让数据库做范围匹配;

  • 如需“按季度/按月”统计,在 Java 代码中计算好起止时间,而不是在 SQL 中 DATE_TRUNC


3. Java 传入“季度”参数的两种姿势

✅ 推荐做法:起止时间范围

int year = 2025;
int quarter = 3;                        // Q3
LocalDateTime start =LocalDateTime.of(year, (quarter-1)*3 + 1, 1, 0, 0); // 2025-07-01 00:00
LocalDateTime end = start.plusMonths(3);                // 2025-10-01 00:00// MyBatis / JPA 示例
@Select("SELECT * FROM orders " +"WHERE order_time >= #{start} " +"AND   order_time <  #{end}")
List<Order> findByQuarter(@Param("start") LocalDateTime start,@Param("end")   LocalDateTime end);
  • 索引友好

  • 避免时区歧义

  • 任何数据库通用

❌ 不推荐做法:直接传 “2025-Q3” 字符串

WHERE TO_CHAR(order_time, 'YYYY-"Q"Q') = '2025-Q3'  -- PostgreSQL
  • 无法使用索引

  • 字符串比较容易出格式问题


4. timestamp(0) 与 timestamp(3) 实战差异

存储与四舍五入演示(MySQL 8.0)

CREATE TABLE t(t0 timestamp(0),t3 timestamp(3)
);INSERT INTO t VALUES ('2025-07-28 15:30:00.987');
SELECT * FROM t;
t0t3
2025-07-28 15:30:012025-07-28 15:30:00.987
  • t0 直接四舍五入到秒

  • t3 保留毫秒,不会四舍五入


5. 额外注意:MySQL TIMESTAMP 的 2038 陷阱

  • TIMESTAMP 在 MySQL 中最大只到 2038-01-19 03:14:07(32 位 Unix 秒数上限);

  • 如果业务生命周期可能超过 2038,请改用 DATETIME 或 PostgreSQL 的 timestamp


6. 小结:一句话记重点

场景一句话建议
精度需要毫秒就 timestamp(3),只到秒就 timestamp(0)
索引不在列上套函数,范围查询最稳
季度参数Java 计算好起止 LocalDateTime,直接传
2038 问题长期数据用 DATETIME / PostgreSQL timestamp

7.PG时间类型转换

SELECT

DATE_TRUNC('year', order_create_time)::date AS year_only, -- 2025-01-01

TO_CHAR(order_create_time, 'YYYY-MM') AS year_month, -- 2025-07

order_create_time::date AS year_month_day, -- 2025-07-28

TO_CHAR(order_create_time, 'YYYY-"Q"Q') AS year_quarter -- 2025-Q3

FROM your_table;

http://www.dtcms.com/a/440883.html

相关文章:

  • 尺寸在线做图网站wdcp wordpress伪静态
  • 网站色彩搭配如何做企业网页
  • 麻涌镇做网站宁波做网站十大公司哪家好
  • 网站建设属于哪种公司怎么做公益网站
  • 网站建设辶首先金手指十四那个网站域名估价好
  • 谢岗镇做网站衡水做wap网站
  • 网站的建设可以起到什么作用是什么原因服装网站建设准备
  • 网站开发公司怎么建服务器昆明网站建设搜q479185700
  • 网站建设里程碑网络营销的案例有哪些
  • 好看 大气的网站百度旗下产品
  • 网站themes目录wordpress装饰设计主题
  • 网站注册费用基于ssh框架的网站开发流程
  • 福州百度网站排名优化7zwd一起做网店官网
  • 全国水利建设市场信用信息平台网站做网站那个平台好
  • 佛山做外贸网站哪家好品牌全案
  • 北京网站建设价格营销型 展示类网站模板
  • 餐厅网站设计高端网站制作系统
  • asp网站咋做企业培训公司
  • 安徽省做网站wordpress弹窗表单
  • 网站排名网络推广微视看视频领红包下载安装
  • 注册企业在哪个网站vs怎么添加做网站
  • 台州网站建设企业狗和女人做的网站
  • 建网站打开需要验证深圳科技有限公司 网站建设
  • 做pc端网站价位深圳建网站 (报价)
  • 佛山网站建设公司哪家性价比高微信小程序认证入口
  • 长春鸿祥建设有限公司网站wordpress新写文章会卡死
  • 宠物用品网站建设网站外部链接怎么做
  • 2015做导航网站有哪些企业网站建设的目的
  • 查看网站用什么语言做的简洁大气企业网站模板
  • 有关网站开发的书籍wordpress 粘贴图片文档