MYSQL数据库,怎样查询一个时间范围内,每个时间点内的数据?

发布网友 发布时间:2022-04-24 04:31

我来回答

3个回答

热心网友 时间:2022-04-07 18:42

1.假设数据库中有一个名为TestTest的表。表格内容如下图所示。

2.Select*fromTesttestwhereMonth(date)='9';,它表示对TestTest表中的9月份记录的查询。

3.单击“Run”执行SQL语句,用户可以从下面看到,9月份的三个记录被查询了。

4.Select*fromTesttestwhereyear(Date)='2017';在美国2017年是被质疑的一年。如下图所示,2017年仅查询了一条记录,如下图。

热心网友 时间:2022-04-07 20:00

SELECT
DATE_FORMAT( datetime列, '%Y-%m-%d' ) AS 日期,
SUM( ... ) AS 合计,
COUNT( ... ) AS 行数
FROM

GROUP BY
DATE_FORMAT( datetime列, '%Y-%m-%d' )追问这样按时间分组查的话,如果其中有一天没有记录的话,就不会出现在结果集里了吧,现在是要每一天都要显示,没有记录的那一天就要显示0,这改怎么写?

追答CREATE TABLE test12 (
  test_date  datetime,
  test_amt   INT
);


INSERT INTO test12  VALUES ( '2013-01-01 12:00:00',  1);
INSERT INTO test12  VALUES ( '2013-01-03 12:00:00',  3);
INSERT INTO test12  VALUES ( '2013-01-05 12:00:00',  5);
INSERT INTO test12  VALUES ( '2013-01-07 12:00:00',  7);
INSERT INTO test12  VALUES ( '2013-01-09 12:00:00',  9);
INSERT INTO test12  VALUES ( '2013-01-11 12:00:00',  11);
INSERT INTO test12  VALUES ( '2013-01-13 12:00:00',  13);
INSERT INTO test12  VALUES ( '2013-01-15 12:00:00',  15);

  
SELECT
  t2.all_day  AS `日期`,
  IFNULL(SUM(  test_amt  ), 0)    AS  `合计`,
  COUNT( test_amt )  AS  `行数`
FROM
(
SELECT
  @rownum:=@rownum+1 AS NO,
  DATE_ADD(  '2013-01-01',  INTERVAL @rownum DAY)  AS  all_day
FROM
  (SELECT @rownum:=-1) r,
  test12
) t2
  LEFT  JOIN  test12  ON  (  t2.all_day  = DATE(test12.test_date) )
WHERE
  t2.all_day >= '2013-01-01'
  AND t2.all_day <= '2013-01-06'
GROUP BY
  t2.all_day;


查询结果由于字数*, 贴不出来了。

结果有6行,  1号到6号, 其中, 1,3,5 号有数据, 2,4,6号数值为0

热心网友 时间:2022-04-07 21:34

表结构拿出来看看啊

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com