问题描述
|
我想这样一个嵌套的MysqL请求,每天对这样的动作进行计数:
SELECT `timestamp` AS `date`,(SELECT COUNT(\'id\')
FROM `actions` WHERE `timestamp` = `date`) AS `action_num`
FROM `actions`;
如果不是这样,那将非常有用,这样我就需要计算每一天,而我得到的只是每个时间戳。如果只是一个约会,它将起作用。所以我想如果我可以从字符串中取出日期并进行比较,则可能可行:
SELECT `timestamp` AS `date`,(SELECT COUNT(\'id\') FROM `actions`
WHERE `timestamp` REGEXP \'[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}\' = `date`
REGEXP \'[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}\') AS `action_num`
FROM `actions`;
但这没有用。
关于如何直接在MysqL中比较两个时间戳字段中的日期的任何想法?
谢谢
解决方法
非常简单,内部查询应为:
SELECT count(id) FROM actions
WHERE DATE(`timestamp`) = DATE(`date`) as action_num
参见:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date
,您可以使用DATEDIFF()
函数在MySQL中比较日期,
和TIMESTAMPDIFF()
比较时间戳,,5ѭ从时间戳获取日期信息。
MySQL的参考手册页中提供了更多的日期和时间功能和示例。