我想这样一个嵌套的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中比较两个时间戳字段中的日期?
谢谢
答案 0 :(得分:1)
非常简单,内部查询应该是:
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
答案 1 :(得分:0)
您可以使用DATEDIFF()
函数来比较MySQL中的日期,
和TIMESTAMPDIFF()
用于比较时间戳,DATE()
从时间戳获取日期信息
MySQL's reference manual pages中提供了更多日期和时间函数和示例。