如何在mysql中比较时间和日期列?
我有一个关于事件发生频率的表格,我希望看到每个事件的第一次和最后一次发生。假设我有三列,事件id、事件时间和事件日期。我知道这样的查询是错误的,并且给出了错误的结果:如何在mysql中比较时间和日期列?,mysql,sql,Mysql,Sql,我有一个关于事件发生频率的表格,我希望看到每个事件的第一次和最后一次发生。假设我有三列,事件id、事件时间和事件日期。我知道这样的查询是错误的,并且给出了错误的结果: SELECT event_id, MIN(event_time), MAX(event_time), MIN(event_date), MAX(event_date) FROM events_table WHERE 1 GROUP BY event_id 有没有办法不用合并两列就
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…),以及您是否可以按天或任何时候查找事件的发生情况 您可以将这两列连接起来,然后将其最小化、最大化 以下假设事件时间如“08:03:21”和事件日期(“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()中删除日期。请更准确地说明列类型(日期、时间、varchar..),以及是否按天或任何时候查找事件的发生 您可以将这两列连接起来,然后将其最小化、最大化 以下假设事件时间如“08:03:21”和事件日期(“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()中删除日期。请更准确地说明列类型(日期、时间、varchar..),以及是否按天或任何时候查找事件的发生 您可以将这两列连接起来,然后将其最小化、最大化 以下假设事件时间如“08:03:21”和事件日期(“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()中删除日期。请更准确地说明列类型(日期、时间、varchar..),以及是否按天或任何时候查找事件的发生 您可以将这两列连接起来,然后将其最小化、最大化 以下假设事件时间如“08:03:21”和事件日期(“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上测试
SELECT a1.event_id,
Min(Concat(a2.event_date, ' ', a2.event_time)),
Max(Concat(a2.event_date, ' ', a2.event_time))
FROM event_log a1
INNER JOIN event_log a2
ON a2.event_id = a1.event_id
GROUP BY a1.event_id
你忘了
这是另一种方法。在我的MySQL上测试
SELECT a1.event_id,
Min(Concat(a2.event_date, ' ', a2.event_time)),
Max(Concat(a2.event_date, ' ', a2.event_time))
FROM event_log a1
INNER JOIN event_log a2
ON a2.event_id = a1.event_id
GROUP BY a1.event_id
你忘了
这是另一种方法。在我的MySQL上测试
SELECT a1.event_id,
Min(Concat(a2.event_date, ' ', a2.event_time)),
Max(Concat(a2.event_date, ' ', a2.event_time))
FROM event_log a1
INNER JOIN event_log a2
ON a2.event_id = a1.event_id
GROUP BY a1.event_id
你忘了
这是另一种方法。在我的MySQL上测试
SELECT a1.event_id,
Min(Concat(a2.event_date, ' ', a2.event_time)),
Max(Concat(a2.event_date, ' ', a2.event_time))
FROM event_log a1
INNER JOIN event_log a2
ON a2.event_id = a1.event_id
GROUP BY a1.event_id
为什么要加入?您正在加入
a2\u event.id
上的a1.event\u id
,然后只使用a1.event\u id-这将等于a2.event\u id?为什么要加入?您正在加入a2\u event.id
上的a1.event\u id
,然后只使用a1.event\u id-这将等于a2.event\u id?为什么要加入?您正在加入a2\u event.id
上的a1.event\u id
,然后只使用a1.event\u id-这将等于a2.event\u id?为什么要加入?您正在加入a2\u event.id
上的a1.event\u id
,然后只使用a1.event\u id-这将等于a2.event\u id?