php mysql查询过去N个星期,上个月,上个季度的记录
来源:互联网 发布:windows ssh agent 编辑:程序博客网 时间:2024/05/09 01:22
假设有个表,怎样通过mysql查询过去N个星期,上个月,上个季度的记录?
网上搜索到的一个方法,主要就是先得到查询时间段的【开始时间,结束时间】,然后通过sql的条件找出这个时间段内的记录
表格:tbfee
id | fee_amount | fee_time
//调用方法if($xid==1){ //上星期 list($start, $end) = lastNWeek(time(), 1); $sql= "select * from tbfee where fee_time > '$start' and fee_time < '$end'";}else if ($xid==2){ //1个月 list($start, $end) = lastMonth(time()); $sql= "select * from tbfee where fee_time > '$start' and fee_time < '$end'";}else if ($xid==3){ //1个季度 list($start, $end) = lastQuarter(time()); $sql= "select * from tbfee where fee_time > '$start' and fee_time < '$end'";}
需要调用的方法
<?php/** * 上XXX时间函数,用于计算上一周,上n周,上个月,上个季度的时间点。 */ /** * 获取上个季度的开始和结束日期 * @param int $ts 时间戳 * @return array 第一个元素为开始日期,第二个元素为结束日期 */function lastQuarter($ts) { $ts = intval($ts); $threeMonthAgo = mktime(0, 0, 0, date('n', $ts) - 3, 1, date('Y', $ts)); $year = date('Y', $threeMonthAgo); $month = date('n', $threeMonthAgo); $startMonth = intval(($month - 1)/3)*3 + 1; // 上季度开始月份 $endMonth = $startMonth + 2; // 上季度结束月份 return array( date('Y-m-1', strtotime($year . "-{$startMonth}-1")), date('Y-m-t', strtotime($year . "-{$endMonth}-1")) );} /** * 获取上个月的开始和结束 * @param int $ts 时间戳 * @return array 第一个元素为开始日期,第二个元素为结束日期 */function lastMonth($ts) { $ts = intval($ts); $oneMonthAgo = mktime(0, 0, 0, date('n', $ts) - 1, 1, date('Y', $ts)); $year = date('Y', $oneMonthAgo); $month = date('n', $oneMonthAgo); return array( date('Y-m-1', strtotime($year . "-{$month}-1")), date('Y-m-t', strtotime($year . "-{$month}-1")) );} /** * 获取上n周的开始和结束,每周从周一开始,周日结束日期 * @param int $ts 时间戳 * @param int $n 你懂的(前多少周) * @param string $format 默认为'%Y-%m-%d',比如"2012-12-18" * @return array 第一个元素为开始日期,第二个元素为结束日期 */function lastNWeek($ts, $n, $format = '%Y-%m-%d') { $ts = intval($ts); $n = abs(intval($n)); // 周一到周日分别为1-7 $dayOfWeek = date('w', $ts); if (0 == $dayOfWeek) { $dayOfWeek = 7; } $lastNMonday = 7 * $n + $dayOfWeek - 1; $lastNSunday = 7 * ($n - 1) + $dayOfWeek; return array( strftime($format, strtotime("-{$lastNMonday} day", $ts)), strftime($format, strtotime("-{$lastNSunday} day", $ts)) );} //---------------------demo---------------------/*$now = strftime('%Y-%m-%d', time());echo "Today: {$now}<br/>"; list($start, $end) = lastNWeek(time(), 1);echo "Last 1 week: {$start} ~ {$end}<br/>"; list($start, $end) = lastNWeek(time(), 2);echo "Last 2 week: {$start} ~ {$end}<br/>"; list($start, $end) = lastNWeek(time(), 3);echo "Last 3 week: {$start} ~ {$end}<br/>"; list($start, $end) = lastMonth(time());echo "Last month: {$start} ~ {$end}<br/>"; list($start, $end) = lastQuarter(time());echo "Last quarter: {$start} ~ {$end}<br/>"; */?>
0 0
- php mysql查询过去N个星期,上个月,上个季度的记录
- php mysql 查询取得今天,昨天,过去N天,过去一个星期,一个月的记录
- MYSQL查询今天,昨天,这个周,上个周,这个月,上个月,今年,去年的数据
- php某个时间点的 上个星期几 下个星期几
- js 获取昨天上周 上个月 上个季度的开始时间和结束时间
- Java获取时间范围: 当前季度,上个季度,昨天,当前月,上个月
- php查询最近30天、7天、每天、昨天、上个月的记录
- mysql 查询 某一天 某个星期 某月的记录
- 过去的一个星期.
- 求一个季度有多少个星期以及这个季度中具体某天是星期几的方法
- Oracle取上个月一号到上个月底的语句
- mysql 查询当天,本周、上周、本月、上个月份的数据
- mysql 查询本周、上周、本月、上个月份的数据
- MySQL查询本周、上周、本月、上个月份的数据
- mysql 查询当天、本周、上周、本月、上个月份的数据
- mysql 查询当天,本周、上周、本月、上个月份的数据
- MySQL查询本周、上周、本月、上个月份的数据
- MySQL查询本周、上周、本月、上个月份的数据
- 二个硬盘对拷系统的方法
- PHP扩展开发(1)-创建基础框架
- 安卓登陆矿记住密码和自动登录的实现
- oracle中获取系统当前时间,启动时间以及运行时间
- openwrt U盘热插拔自动挂载
- php mysql查询过去N个星期,上个月,上个季度的记录
- 深入浅出MyBatis-MapperBuilder
- IOs 推送
- 手机基站信息获取
- 关于Weblogic线程数的几点使用
- Mac 忘记密码
- CvValArray和CvCARTNode
- 120011111111QEMU中启动单虚拟机并已TAP/TUN方式联网的方法请参见:QEMU中启动单虚拟机并已TAP/TUN方式联网的方法请参见:QEMU中启动单虚拟机并已TAP/TUN方式联网的方
- UI设计:Android Wear - Design Principles for Android Wear(设计准则)