给定一个带有包含时间戳的列的表,我想计算TIMEDIFF(now(), timeStamp)
大于某个值的实例数。我遇到的问题是将所有这些实现为声明。我的努力:
SELECT COUNT*()
FROM sometable
WHERE (SELECT TIMEDIFF(now(),column_from_sometable) > 10
我只是不太确定如何在where语句中使用
TIMEDIFF
进行比较。 (显然,您必须使用SELECT
来调用该方法,然后我不确定在该语句中如何从sometable
访问列)。 最佳答案
如果列column_from_sometable
属于同一表sometable
,则不需要子选择。您可以在WHERE
条件中包括
SELECT COUNT(*)
FROM sometable
WHERE TIMEDIFF(now(),column_from_sometable) > 10
您也可以通过在汇总函数中添加条件来简化此操作,例如
SELECT SUM(CASE WHEN TIMEDIFF(now(),column_from_sometable) > 10 THEN 1 ELSE 0 END)
FROM sometable