MySQL数据库按时间分表的查询⽅法
分表规则:按⽉分表,每个⽉⼀张表,表的字段和类型都相同。 如 test_table_202011
查询⽅法:
$start_date=strtotime('2020-01-01 00:00:00');//开始时间戳
$end_date=strtotime('2020-07-01 23:59:59');//截⾄时间戳
$month_begin=date('Ym',$start_date);//开始年⽉
$month_end=date('Ym',$end_date);//截⾄年⽉
$month_plus=1;
$month_next=date('Ym',strtotime("+{$month_plus} months",$start_date));
$UNION_SQL="SELECT * FROM test_table_{$month_begin}";
mysql数据库的方法
while(intval($month_next)<=intval($month_end)){
$UNION_SQL.=" UNION ALL SELECT * FROM test_table_{$month_next}";
$month_plus+=1;
$month_next=date('Ym',strtotime("+{$month_plus} months",$start_date));
}
$sql="SELECT * FROM ($UNION_SQL) t WHERE 1 AND create_time BETWEEN $start_date AND $end_date"; $dt=DB::query($sql);
可根据⾃⼰的需求封装成函数调⽤。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。