我编写了一个sql查询,用于获取在一段时间内创建的用于绘制图形(grafana或chart js)的用户数,我的sql查询是

 SELECT
  date(user.created_date) as "time",
  count(distinct user.id) as Number Of User,
  status as status
FROM user
WHERE
  created_date >= FROM_UNIXTIME(1649635200) AND 
  created_date < FROM_UNIXTIME(1649894399)
GROUP BY user.status, date(user.created_date)
ORDER BY date(user.created_date)

Here in this query created date is passed dynamically from front-end, Now i am getting the result like, enter image description here

现在,每当我从过go 24小时/12小时中 Select 日期过滤器时,一些结果都不存在,

有没有办法将我的sql查询修改为按创建日期分组,间隔12小时

推荐答案

在格拉法纳有一个$__timeFrom()$__timeTo()的档案

SELECT
  (CASE 
    WHEN HOUR(TIMEDIFF($__timeFrom(), $__timeTo())) <= 24
    THEN user.created_date
    ELSE date(user.created_date) end) AS "time",
  count(distinct user.id) as Users,
FROM user
WHERE
  user.created_date >= $__timeFrom() AND 
  user.created_date < $__timeTo() AND
GROUP BY CASE
  when HOUR(TIMEDIFF($__timeFrom(), $__timeTo())) <= 24
  then user.created_date
  else date(created_date) end
ORDER BY CASE
  when HOUR(TIMEDIFF($__timeFrom(), $__timeTo())) <= 24
  then user.created_date
  else date(created_date) end;

Mysql相关问答推荐

对象NotExecutabletry 在远程SQL服务器上执行SQL时出错,并使用SQLAchemy.Create_engine

MySQL 8.0.28覆盖(和函数)索引未使用

拒绝非超级用户访问停靠的MariaDB(超级用户工作)

当日期附加到MySQL后,如何按日期说明排序?

无法确定查询逻辑

计算同一个表中的两列,然后将两者都算作总数

拆分列值并适当地返回拆分值

如何根据 R 中的价格范围将数据从一列复制到新列?

Mysql JSON_REMOVE 数组键和值 (MariaDB)

Select 分组产品的数量和每个产品的最便宜的价格

如何创建一个判断行是否存在的mysql查询-如果存在我想插入一条新记录,否则增加一个值

MySQL在定义表的位置后抛出错误

在 MySQL 中 Select COUNT of MAX

为什么 ORDER BY 'id' 'desc' 不返回语法错误?

判断一对记录是否属于多个组ID

自动登录 phpMyAdmin

我的 PDO 声明不起作用

MySQL中的行值增加和减少1

如何让mysql自动启动? (仅限 linux-cli)

警告:mysqli_connect(): (HY000/1045): Access denied for user 'username'@'localhost' (using password: YES)