当前位置:网站首页>PHP和MySQL获取week值不一致的处理
PHP和MySQL获取week值不一致的处理
2022-07-26 09:00:00 【愤世大魔头】
应用情景
在处理关于周数据的统计的时候,碰上一个问题:通过MySQL的week函数统计出来的“周数”,比PHP的date(“W”,time())获取的“周数”小1。如“2020-06-18 13:27:01”,MySQL取出来的是24,而PHP取出来的是25,这就导致有一周的数据没有匹配上。
头一次碰上这个问题,于是我特意用win10角落的日历数了一下,发现“2020-06-18 13:27:01”确实在2020年的第25周,那问题就出在MySQL的week函数了。
问题所在
仔细一查,发现MySQL的week函数居然还有第2个参数——mode?!
WEEK函数的两个参数:
date是要获取周数的日期。
mode是一个可选参数,用于确定周数计算的逻辑。它允许您指定本周是从星期一还是星期日开始,返回的周数应在0到52之间或0到53之间。
看了这个注释我一开始没看懂,但看了下面这个表:
模式 | 一周的第一天 | 范围 |
0 | 星期日 | 0-53 |
1 | 星期一 | 0-53 |
2 | 星期日 | 1-53 |
3 | 星期一 | 1-53 |
4 | 星期日 | 0-53 |
5 | 星期一 | 0-53 |
6 | 星期日 | 1-53 |
7 | 星期一 | 1-53 |
忽然明白了!
默认情况下,mode参数取0,也就是说,周是从星期日开始算的,再看“2020-06-18 13:27:01”,其实,它所在的这一周是 “2020-06-14”到“2020-06-20”,而不是“2020-06-15”到“2020-06-21”
这就清楚了,是计算一周的第一天不同导致的,那么,只有将其统一,就OK了。
解决方案
在MySQL的week函数中加入第二个参数“1”,即 WEEK(created_at,1),再次查看,MySQL和PHP所取的周数就一致了!
至于为什么有0-7这八种模式,有懂的朋友,欢迎留言!谢谢~
边栏推荐
- 《Datawhale熊猫书》出版了!
- 合工大苍穹战队视觉组培训Day6——传统视觉,图像处理
- ES6 modular import and export) (realize page nesting)
- node的js文件引入
- Hegong sky team vision training Day6 - traditional vision, image processing
- CSDN Top1 "how does a Virgo procedural ape" become a blogger with millions of fans through writing?
- NFT与数字藏品到底有何区别?
- mysql函数
- C # use npoi to operate Excel
- Day06 homework -- skill question 2
猜你喜欢
Flask project learning (I) -- sayhello
合工大苍穹战队视觉组培训Day5——机器学习,图像识别项目
[database] gbase 8A MPP cluster v95 installation and uninstall
Day06 homework - skill question 7
Day06 homework - skill question 6
Pan micro e-cology8 foreground SQL injection POC
李沐d2l(六)---模型选择
JDBC database connection pool (Druid Technology)
uni-app 简易商城制作
第6天总结&数据库作业
随机推荐
第6天总结&数据库作业
Cve-2021-21975 VMware SSRF vulnerability recurrence
布隆过滤器
论文笔记: 知识图谱 KGAT (未完暂存)
数据库操作 题目一
本地缓存
at、crontab
mysql函数
Espressif plays with the compilation environment
HBuilderX 运行微信开发者工具 “Fail to open IDE“报错解决
CSDN TOP1“一个处女座的程序猿“如何通过写作成为百万粉丝博主?
[encryption weekly] has the encryption market recovered? The cold winter still hasn't thawed out. Take stock of the major events that occurred in the encryption market last week
at、crontab
What are the differences in the performance of different usages such as count (*), count (primary key ID), count (field) and count (1)? That's more efficient
Self review ideas of probability theory
Datawhale panda book has been published!
聪明的美食家 C语言
[recommended collection] MySQL 30000 word essence summary - query and transaction (III)
My meeting of OA project (meeting seating & submission for approval)
JDBC数据库连接池(Druid技术)