• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

mysql 搞代码 7年前 (2018-06-05) 139次浏览 已收录 0个评论

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 
 HOUR 时间 HOURS 
 DAY 天 DAYS 
 MONTH 月 MONTHS 


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql中怎么查询最近24小时、昨天、最近7天、下周、最近30天、下月的数据
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址