Group by day from timestamp
MysqlSqlMysql Problem Overview
In my posts
table, it saves timestamp for each post record.
What query can group posts by day, using this timestamp column?
Mysql Solutions
Solution 1 - Mysql
How about this? Using the DATE
function:
SELECT DATE(FROM_UNIXTIME(MyTimestamp)) AS ForDate,
COUNT(*) AS NumPosts
FROM MyPostsTable
GROUP BY DATE(FROM_UNIXTIME(MyTimestamp))
ORDER BY ForDate
This will show you the number of posts on each date that the table has data for.
Solution 2 - Mysql
SELECT DATE(timestamp) AS ForDate,
COUNT(*) AS NumPosts
FROM user_messages
GROUP BY DATE(timestamp)
ORDER BY ForDate
This found for me. I have timestamp like "2013-03-27 15:46:08".
Solution 3 - Mysql
SELECT
*
FROM
(
SELECT DATE(FROM_UNIXTIME(MyTimestamp)) AS ForDate,
ROW_NUMBER() OVER (PARTITION BY DATE(FROM_UNIXTIME(MyTimestamp)) ORDER BY MyTimeStamp) AS PostRowID,
*
FROM MyPostsTable
)
AS sequenced_daily_posts
WHERE
ForDate = <whatever date(s) you want>
AND PostRowID <= 2
Solution 4 - Mysql
I did a lot of research about this error and got a solution that if you are select timestamp within DATE then you have to use this symbol (``) before and after of column name.
select DATE(addedon) as addedon, count(*) from data where id= '$bid' GROUP BY DATE(addedon)