加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP和MySQL之间的周差异

发布时间:2021-03-07 09:36:02 所属栏目:编程 来源:网络整理
导读:我有以下查询. SELECT COUNT(*),WEEK(date),YEAR(date) FROM myTable GROUP ON YEAR(date),WEEK(date) 说它发生以下功效 32 33 201243 34 201239 35 201217 36 2012 我此刻想在2012年第35周得到全部39笔记录.可是,我不但愿在我的WHERE子句中行使WEEK(date)=

我有以下查询.

SELECT COUNT(*),WEEK(date),YEAR(date) FROM myTable GROUP ON YEAR(date),WEEK(date)

说它发生以下功效

32 33 2012
43 34 2012
39 35 2012
17 36 2012

我此刻想在2012年第35周得到全部39笔记录.可是,我不但愿在我的WHERE子句中行使WEEK(date)= 35 AND YEAR(date)= 2012,由于它不行使索引.相反,我但愿找到界线并行使前提.我也不想行使BETWEEN,由于也许会呈现舍入错误.

因此,我实行以下思绪统统都很好,但不要获得39笔记录.显然,MySQL和PHP的处理赏罚方法与周数差异.我看到MySQL WEEK()行使模式0,2,4和6,它们都返回以礼拜日开始的一周.抱负环境下,我会拥有人们最常用的谁人,最重要的是它与DateTime提供的沟通.我该怎么办?感谢

$w=35;$y=2012;   //Given
$w=sprintf('%02d',$w);    //Make sure it is two digits
$date = new DateTime($y.'W'.$w);
$d1=$date->format('Y-m-d');
$date->add(new DateInterval('P1W'));
$d2=$date->format('Y-m-d');
$sql='SELECT * FROM myTable WHERE date >= ? AND date < ?';
最佳谜底 关于MySQL怎样事变,你正处在正确的轨道上,有各类模式可以发生差异功效的周相干函数. http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week

我领略MySQL模式相等于PHP的日期逻辑是模式3,这是ISO周日期尺度http://en.wikipedia.org/wiki/ISO_week_date

从礼拜一开始,周数和周数为1-53.

以是你必要行使WEEK(date_field,3)来得到PHP兼容的值.

作为一种更换要领,在我必要可以或许机动查询差异日期范畴或聚合(Q1-Q4,H1-H2等)的环境下,可能您也许必要行使差异周数的环境下,我发明白一件事. PHP支持在MySQL中行使日期辅佐措施表(相同于数据客栈中可用作日期维度表的表,假如您认识它).它可觉得您提供一个利便的表格来插手,以便查找日期范畴.这样的工作应该有用:

http://databobjr.blogspot.com/2012/06/create-date-dimension-table-in-mysql.html

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读