您好,匿名用户
随意问技术百科期待您的加入

mysql 中,统计一个时间段内每天8时到12时的数据的查询语句怎么写?

0 投票

比如
2012-12-11 8:00:00-12:00:00

2012-12-13 8:00:00-12:00:00
这3天内,8点到12点。
查询语句怎么写?

自己写出来了。

EXPLAIN SELECT COUNT(*) FROM fd_member WHERE FROM_UNIXTIME(UNIX_TIMESTAMP(add_time),'%h')>=8 AND FROM_UNIXTIME(UNIX_TIMESTAMP(add_time),'%h')<12 GROUP BY CONVERT(add_time,CHAR(10))

不过,性能是个问题,谁有更好的办法。
表结构:

`mem_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `mem_name` varchar(50) NOT NULL ,
  `mem_pass` varchar(50) NOT NULL ,
  `telephone` varchar(20) DEFAULT NULL,
  `add_time` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`mem_id`),
  UNIQUE KEY `mem_card_id` (`mem_card_id`),
  UNIQUE KEY `mem_name` (`mem_name`)
用户头像 提问 2013年 9月11日 @ Irelia 上等兵 (292 威望)
分享到:

1个回答

0 投票
SELECT * FROM table_name
WHERE time BETWEEN unix_timestamp(2012-12-11 8:00:00) AND unix_timestamp(2012-12-11 12:00:00)
OR time BETWEEN unix_timestamp(2012-12-12 8:00:00) AND unix_timestamp(2012-12-12 12:00:00)
OR time BETWEEN unix_timestamp(2012-12-13 8:00:00) AND unix_timestamp(2012-12-13 12:00:00)
用户头像 回复 2013年 9月11日 @ Wukong 上等兵 (475 威望)
提一个问题:

相关问题

0 投票
0 回复 6 阅读
用户头像 提问 2014年 6月3日 @ 匿名用户
0 投票
1 回复 33 阅读
+3 投票
1 回复 378 阅读
用户头像 提问 2012年 12月8日 @ 匿名用户
0 投票
1 回复 31 阅读
用户头像 提问 2013年 12月5日 @ Miss Fortune 上等兵 (418 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...