mysql中怎么查询最近24小时、昨天、最近7天、下周、最近30天、下月的数据

mysql中如何查询最近24小时、昨天、最近7天、上周、最近30天、上月的数据

在数据表中使用date列保存yyyy.MM.dd HH:MM:SS格式的时间记录,mysql中如何查询最近24小时、昨天、最近7天、上周、最近30天、上月的数据记录?

数据

visittime state

2012-08-01 15:12:11 1

2012-08-01 16:14:32 2

2012-08-01 17:13:58 3

SELECT hour(visittime) as visittime, sum(if(state=1,1,0)) as sum1,sum(if(state=2,1,0)) as sum2,sum(if(state=3,1,0)) as sum3

FROM ads_show_log where to_days(visittime) = to_days(now())

group by hour(visittime) 

我这样写结果是

visittime sum1 sum2 sum3

15 1 0 0

16 0 1 0

17 0 0 1

我想要的结果是

visittime sum1 sum2 sum3

0 0 0 0

1 0 0 0

2 0 0 0

3 0 0 0

4 0 0 0

15 1 0 0

16 0 1 0

17 0 0 1

…..

23 0 0 0

sql语句要怎么写啊



zz

MySQL日期时间函数大全

DAYOFWEEK(date) 

 返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)

mysql> select DAYOFWEEK(‘1998-02-03’); 

  -> 3 

WEEKDAY(date) 

 返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 

mysql> select WEEKDAY(‘1997-10-04 22:23:00’); 

  -> 5 

mysql> select WEEKDAY(‘1997-11-05’); 

  -> 2 

DAYOFMONTH(date) 

 返回date是一月中的第几日(在1到31范围内) 

mysql> select DAYOFMONTH(‘1998-02-03’); 

  -> 3 

DAYOFYEAR(date) 

 返回date是一年中的第几日(在1到366范围内) 

mysql> select DAYOFYEAR(‘1998-02-03’); 

  -> 34 

MONTH(date) 

 返回date中的月份数值 

mysql> select MONTH(‘1998-02-03’); 

  -> 2 

DAYNAME(date) 

 返回date是星期几(按英文名返回)

mysql> select DAYNAME(“1998-02-05”); 

  -> ‘Thursday’ 

MONTHNAME(date) 

 返回date是几月(按英文名返回)

mysql> select MONTHNAME(“1998-02-05”); 

  -> ‘February’ 

QUARTER(date) 

 返回date是一年的第几个季度 

mysql> select QUARTER(’98-04-01′); 

  -> 2 

WEEK(date,first)

 返回date是一年的第几周(first默认值0,first取值1表示周一是周的开始,0从周日开始)

mysql> select WEEK(‘1998-02-20’); 

  -> 7 

mysql> select WEEK(‘1998-02-20’,0); 

  -> 7 

mysql> select WEEK(‘1998-02-20’,1); 

  -> 8 

YEAR(date) 

 返回date的年份(范围在1000到9999) 

mysql> select YEAR(’98-02-03′); 

  -> 1998 

HOUR(time) 

 返回time的小时数(范围是0到23)

mysql> select HOUR(’10:05:03′); 

  -> 10 

MINUTE(time) 

 返回time的分钟数(范围是0到59) 

mysql> select MINUTE(’98-02-03 10:05:03′); 

  -> 5 

SECOND(time) 

 返回time的秒数(范围是0到59)

mysql> select SECOND(’10:05:03′); 

  -> 3 

PERIOD_ADD(P,N) 

 增加N个月到时期P并返回(P的格式YYMM或YYYYMM) 

mysql> select PERIOD_ADD(9801,2); 

  -> 199803 

PERIOD_DIFF(P1,P2) 

 返回在时期P1和P2之间月数(P1和P2的格式YYMM或YYYYMM)

mysql> select PERIOD_DIFF(9802,199703); 

  -> 11 

DATE_ADD(date,INTERVAL expr type)

DATE_SUB(date,INTERVAL expr type) 

ADDDATE(date,INTERVAL expr type) 

SUBDATE(date,INTERVAL expr type)

 对日期时间进行加减法运算

 (ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词,也可以用运算符 和-而不是函数

 date是一个DATETIME或DATE值,expr对date进行加减法的一个表达式字符串type指明表达式expr应该如何被解释

 [type值 含义 期望的expr格式]:

 SECOND 秒 SECONDS 

 MINUTE 分钟 MINUTES 

 H

mysql中怎么查询最近24小时、昨天、最近7天、下周、最近30天、下月的数据

相关文章:

你感兴趣的文章:

标签云: