mysql - 如何在 mysql 中一起比较时间和日期列?

标签 mysql sql

我有一个关于事件发生频率的表格,我想查看每个事件的第一次和最后一次发生。假设我有三列,event_id、event_time 和 event_date。我知道这样的查询是错误的,并给出错误的结果:

SELECT 
    event_id, 
    MIN(event_time), 
    MAX(event_time), 
    MIN(event_date), 
    MAX(event_date)
FROM events_table
WHERE 1
GROUP BY event_id

有什么办法可以在不合并两列的情况下做到这一点?

最佳答案

请更准确地说明列类型(日期、时间、varchar..)以及您是按天还是按天查找事件的发生。

您可以将这两列连接起来并最小化、最大化它。

以下假设 event_time 像 '08:03:21' 和 event_date('2014-01-30') 发生过:

SELECT id, event_id, min(concat(event_date,' ',event_time)),max(concat(event_date,' ',event_time))
from t_test
group by event_id

如果您想检查每天的第一次、最后一次出现,只需按天分组并从 concat() 中删除日期。

关于mysql - 如何在 mysql 中一起比较时间和日期列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21449954/

相关文章:

sql - 不能排除以前的非重复行

mysql - 长列与长行数据库

c# - 具有多个where参数的linq to sql查询

php - 使用 PHP 提取服务器时间并存储在 MySQL 中 - Unix 时间戳好吗?

mysql - 如何在mysql中获取每天的最后一条记录?

mysql - Rails 何时使用 BEGIN 和 COMMIT 包装插入?

MySQL触发器不起作用

php - MySQL 到 Mysqli - 数据库类 - PHP

php - 如何以网络表单上传文件并通过电子邮件发送?

java - 使用android room时出现错误: incompatible types: <null> cannot be converted to int if (! _cursor.isNull(null))