Mysql 用数字获取UNIX时间
MySQL查询:Mysql 用数字获取UNIX时间,mysql,sql,unix-timestamp,Mysql,Sql,Unix Timestamp,MySQL查询: SELECT c.day, COUNT(site_id) FROM calendar c LEFT JOIN ( SELECT * FROM visitors WHERE site_id = 16 ) d ON DAYOFMONTH(d.created) = c.day WHERE c.day BETWEEN DAYOFMONT
SELECT c.day,
COUNT(site_id)
FROM calendar c
LEFT JOIN
(
SELECT *
FROM visitors
WHERE site_id = 16
) d ON DAYOFMONTH(d.created) = c.day
WHERE c.day BETWEEN DAYOFMONTH('2012-10-01') AND DAYOFMONTH('2012-10-31')
GROUP BY c.day
ORDER BY c.day
我的桌子
Calendar
id | day
---------
1 | 1
2 | 2
3 | 3
...
31 | 31
Visitors
id | site_id | created
-----------------------------------
1 | 16 | 2012-10-18 11:14:39
2 | 16 | 2012-10-18 11:15:17
3 | 11 | 2012-10-18 11:49:14
4 | 11 | 2012-10-18 11:49:43
5 | 16 | 2012-10-19 11:54:37
6 | 1 | 2012-10-19 05:56:31
7 | 2 | 2012-10-19 05:57:56
我使用上面的查询来检索访问站点的每日结果。这个问题解决了我的问题
结果:
day | COUNT(*)
-------------
1 | 0
2 | 0
3 | 0
....
18 | 2
19 | 1
...
31 | 0
尽管现在,我在从天
检索UNIX_时间戳时遇到了问题,我需要它来绘制图形
如何从查询中的c.day
中检索它?编辑:
v、 在大多数日期创建的值为空。例如,v.created在第一行将为NULL<代码>1 | 0 | NULL因为它是左连接。我需要获取一个月的所有天数。从第一天到最后一天。这意味着我每次需要31行。
SELECT
UNIX_TIMESTAMP('2012-10-01' + INTERVAL c.day - 1 DAY) unix_ts_day,
COUNT(v.site_id)
FROM
calendar c
LEFT JOIN (
SELECT * FROM visitors
WHERE site_id = 16 AND DATE(created) BETWEEN '2012-10-01' AND '2012-10-31'
) v
ON DAYOFMONTH(v.created) = c.day
GROUP BY
unix_ts_day