在特定日期(mysql-php)计算特定值的最简单方法是什么?

时间:2013-10-01 09:22:05

标签: php mysql

(抱歉英语不好,技能差) 你好!我有一个mysql数据库,其中包含四列和一个cron作为脚本,每10分钟请求一个用户的状态。 DataBase列:

ID UID STATUS CHECK_AT
  • ID - 只是序列号(1,2,3等)。每次脚本写入数据库时​​,数字都会增长。
  • UID - 键值。让我们说它是用户的ID。所有数据库包含大约3-5个不同的UID
  • 状态 - 值为1或0.假设1在线,0表示离线。在线状态超时为10分钟。
  • CHECK_AT - 脚本工作的时间和日期,如2013-10-01 00:30:01

逻辑:每10分钟脚本检查特定的UID(写在其他表中),用于在线(1)或离线(0)。 我想做什么: 输出一天特定UID的在线摘要时间;周;月等

我想它应该是基本的,比如

select count(id) from DB_NAME where date(check_at) = '2013-10-01';

一天

select count(uid) from user_activity where date(check_at) between '2013-10-01' and '2013-10-07';

几天等等。

但是,我的技能是低知道,我怎么只计算一个约会的在线时间(状态= 1)。 你能给我一些建议吗?

1 个答案:

答案 0 :(得分:0)

您可以在WHERE子句中添加条件,如:

select count(id) from your_table where date(check_at) = '2013-10-01' AND status = 1;

OR

select count(uid) from user_activity where 
    date(check_at) between '2013-10-01' AND '2013-10-07'
    AND status = 1;