mysql统计本周的的Sql怎么写

yak 发布于 2014/11/10 18:25
阅读 929
收藏 1

select * from table   where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);

这种是查询今天过去7天内的数据

实际上本周的需求是从周一到周五  这个查询条件怎么写?

加载中
0
JeffreyLin
JeffreyLin

应该先用今天通过日期加减算出本周的周一d1和周五d2,
然后用 where column_time>=d1 and column_time<=d2 进行查找

0
J
Jake__Xu
select * from table   where column_time between  subdate(curdate(),date_format(curdate(),'%w')-1) and  subdate(curdate(),date_format(curdate(),'%w')-5)
0
紫_絮
紫_絮

加一层
select * from
(
    select *, to_char(date(column_time), 'd') tmp from table where     DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time)
) where tmp in (0,1,2,3,4);

0=Monday,1=Tusday,....,6=Sunday

或者
to_char(date, 'day') ----> 'monday',...,'sunday'
to_char(date, 'Day') ----> 'Monday',...,'Sunday'

0
yak
yak
$start =date('Y-m-d', strtotime("this Monday"));

$end=date('Y-m-d', strtotime("this sunday"));

$sql= " select * from table   where column_time between $start and $end ";

这样就可以





0
yak
yak

引用来自“紫_絮”的评论

加一层
select * from
(
    select *, to_char(date(column_time), 'd') tmp from table where     DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time)
) where tmp in (0,1,2,3,4);

0=Monday,1=Tusday,....,6=Sunday

或者
to_char(date, 'day') ----> 'monday',...,'sunday'
to_char(date, 'Day') ----> 'Monday',...,'Sunday'

 FUNCTION to_char does not exist
紫_絮
紫_絮
Sorry, 没看清是mysql 你试试用date_format(date, '%W') 替换吧, 把in 条件也改改 date_format(date, '%W') 应该是Monday....这样子
返回顶部
顶部