Mysql 如何仅显示当前数据库中的记录

Mysql 如何仅显示当前数据库中的记录,mysql,sql,time,timestamp,where-clause,Mysql,Sql,Time,Timestamp,Where Clause,我只想选择当天的记录。所以我每天都能看到有多少游客(“bezoekers”) 这是我使用的代码: Select FROM_UnixTime((sensordata1.time), '%Y-%c-%d-%H') "Datum (Descending)", COUNT(DISTINCT address) "Bezoekers" FROM sensordata1 ORDER BY 1 FROM_UnixTime((sensordata1.time), '%Y-%c-%d-%H') DESC

我只想选择当天的记录。所以我每天都能看到有多少游客(“bezoekers”)

这是我使用的代码:

Select FROM_UnixTime((sensordata1.time), '%Y-%c-%d-%H') "Datum (Descending)", 
COUNT(DISTINCT address) "Bezoekers"  
FROM sensordata1  
ORDER BY 1
FROM_UnixTime((sensordata1.time), '%Y-%c-%d-%H') DESC
我尝试的是:

Select FROM_UnixTime((sensordata1.time), '%Y-%c-%d-%H') "Datum (Descending)",
COUNT(DISTINCT address) "Bezoekers"  
FROM sensordata1  
WHERE 1, DATE('Datum') = DATE(CURDATE() 
ORDER BY 1
FROM_UnixTime((sensordata1.time), '%Y-%c-%d-%H') DESC
我想要的是:

Datum         | Bezoekers
2017-4-20-15  | 31
2017-4-20-14  | 34
2017-4-20-13  | 20
2017-4-20-12  | 26
我不想拿2017-04-21为例。
如果我第二天回来,它必须是从那天开始的,这样你就不能设定日期。

你错过了一个
群组。如果您希望从_UnixTime(sensordata1.time,'%Y-%c-%d-%H')
中的每个
都有一个结果行,请按它分组

Select
  FROM_UnixTime(sensordata1.time, '%Y-%c-%d-%H') AS "Datum (Descending)", 
  COUNT(DISTINCT address) AS "Bezoekers"  
FROM sensordata1  
GROUP BY FROM_UnixTime(sensordata1.time, '%Y-%c-%d-%H')
ORDER BY FROM_UnixTime(sensordata1.time, '%Y-%c-%d-%H') DESC;
仅当天相同(根据
其中添加了
条款):


我想指出,您可以使用别名来简化查询。日期逻辑有点不清楚,但你似乎想要昨天的日期。您可以使用
where
子句执行此操作:

Select from_unixtime(sd.time, '%Y-%c-%d-%H') as Datum, 
       count(distinct sd.address) as Bezoekers 
from sensordata1 sd
where sd.time >= unixtime_timestamp(curdate() - interval 1 day) and
      sd.time < unixtime_timestamp(curdate())
group by datum
order by datum desc
从_unixtime(标准时间,%Y-%c-%d-%H')中选择作为基准,
计数(不同的sd.地址)为Bezoekers
来自sensordata1 sd
其中sd.time>=unixtime\u时间戳(curdate()-间隔1天)和
sd.time
添加一些示例表数据及其预期结果。我已经展示了我想要的内容了吗?这就是预期的结果?WHERE子句在我看来是错误的。。。您是否尝试过使用Have…
,其中1,…
在语法上是错误的(逗号应该是什么意思?)
WHERE DATE('Datum')=DATE(CURDATE()
在语法上也是错误的(缺少右括号)。此外,您使用字符串
'Datum'
(单引号用于字符串文字)并尝试将此字符串转换为日期。顺便说一句:
ORDER BY 1 FROM_UnixTime…
在语法上也是错误的(删除一个表达式或用逗号分隔两个表达式)。没有任何匹配的样本表数据的预期结果没有任何好处…您确切的意思是什么?如果我添加:groupby FROM_UnixTime((sensordata1.time+7200),“%Y-%c-%d-%H”)它仍然显示其他日期的数据,然后今天您的查询显示一个结果行,其中包含总计数和任意选择的一天/小时数。但是您想要的结果每天/小时都有一行,每个结果都包含其值。这就是我的查询所做的。但是,好的,那么“我想要的”就是不是你想要的。@Thorsten也许他想在“数据(下降)”上添加HAVING子句与当前日期相比?啊,不,对不起,我误读了。只有当前日期,但每小时一行。我已经更新了我的答案。这就是我需要的!如果我希望它也与当前月份的天数有关,还有一个问题?所以我只想显示从当前月份开始的这些天的天数和访客数?
Select from_unixtime(sd.time, '%Y-%c-%d-%H') as Datum, 
       count(distinct sd.address) as Bezoekers 
from sensordata1 sd
where sd.time >= unixtime_timestamp(curdate() - interval 1 day) and
      sd.time < unixtime_timestamp(curdate())
group by datum
order by datum desc