Mysql 中如何按时间段查询数据后,再查询这个时间段内重复的数据条数? 如:图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 中如何按时间段查询数据后,再查询这个时间段内重复的数据条数? 如:图相关的知识,希望对你有一定的参考价值。

我已经用 Select * From mytable Where DATE_FORMAT(`录入时间`,'%Y-%c-%e') >= '2013-5-5' and DATE_FORMAT(`录入时间`,'%Y-%c-%e') <= '2013-5-6';
取得了2条数据,但是我还想取其中的 问题类别为 惠农政策咨询 的 有几条。

sql 语句 如何写啊?
“Select * From mytable Where DATE_FORMAT(`录入时间`,'%Y-%c-%e %H-%i-%s') >= '2013-5-5 00:00:00 ' And DATE_FORMAT(`录入时间`,'%Y-%c-%e %H-%i-%s') <='2013-5-23 23:59:59'”

用这个语句 怎么查询不到 6号以后的数据了?6号的2条可以查到。

参考技术A Select * From mytable Where DATE_FORMAT(`录入时间`,'%Y-%c-%e') >= '2013-5-5' and DATE_FORMAT(`录入时间`,'%Y-%c-%e') <= '2013-5-6' and 问题类别 like '惠农政策咨询';本回答被提问者采纳 参考技术B Select * From mytable Where DATE_FORMAT(`录入时间`,'%Y-%c-%e') >= '2013-5-5' and DATE_FORMAT(`录入时间`,'%Y-%c-%e') <= '2013-5-6' AND '问题类别' = ‘惠农政策咨询’;

mysql 如何按月分组查询出当前年度每个月的短信数量(数据库中这个月要是为空的话就用0条怎么显示出来)

以下是我的sql:(我写的这条不能显示没有数据的这个月的数量 0)
SELECT
DATE_FORMAT(createTime, '%Y-%m') AS date,
count(*) AS count
FROM
data_shortmessage
WHERE
createTime > (
CONCAT(
DATE_FORMAT(now(), '%Y'),
'-01-01'
)
)
AND createTime <= (
CONCAT(
DATE_FORMAT(now(), '%Y'),
'-12-31'
)
)
GROUP BY
YEAR (createTime),
MONTH (createTime);

可以加个时间维度表,以时间维度表为主表!(id,month)id 是和你的表左连接,month是1到12月,一楼说的几个方法!应该不好实现的吧?不用写存储过程那么复杂!举个例子
select a.rq,
b.xssr
from date_table a left jion table1 b
on a.id=b.id
参考技术A 可以考虑用NVL函数或者case语句实现追问

我自己就在尝试用case语句写的,在数据库执行,就是不出来为0数量的这个月,所以才来求教高手帮忙搞定一下

追答

我理解了,标准根本就不存在这个数据对吧,这样你想显示是这个意思吧

追问

对的,比如查询2015年的,我数据库有1月 2月 5月数据 我需求是,同时也要统计出3 ,4 月的数量,只不过是用0显示出来

追答

这个就没办法了,除非数据库存在这个数据,否则那就得用存储过程实现或者SQL取到值后外部程序进行处理

追问

哦,那我就去找找存储的吧,谢谢你指导啊

以上是关于Mysql 中如何按时间段查询数据后,再查询这个时间段内重复的数据条数? 如:图的主要内容,如果未能解决你的问题,请参考以下文章

mysql 如何按月分组查询出当前年度每个月的短信数量(数据库中这个月要是为空的话就用0条怎么显示出来)

mysql 查询时 按照某个字段计算后的值 排序?

Mysql建立索引经验

mysql 如何 多表连查 按时间到排序

mysql 两个子查询很快 ,再连接查询变的很慢,怎么分析其原因

分库分表后的分页查询