MySQL:查询中从周数开始的周日期范围

Sil*_*ght 6 mysql sql date

我有一个数据库表,看起来像这样:

| id         | clock         | info
----------------------------------------------
| 1          | 1262556754    | some info
| 2          | 1262556230    | some other info
| 3          | 1262556988    | and another
| 4          | 1262555678    | and some more
Run Code Online (Sandbox Code Playgroud)

写入此日志时,它包含日志记录和unix时间戳.我需要的是每周报告一次,每周有多少日志记录.这是我写的一个查询:

SELECT
    DATE_FORMAT(FROM_UNIXTIME(clock), "%U") AS week
count(*) as cnt
FROM logs
WHERE DATE_FORMAT(FROM_UNIXTIME(clock), "%Y") = '2010'
GROUP BY week
Run Code Online (Sandbox Code Playgroud)

这给出了这样的结果:

| week       | cnt
-------------------------------
| 1           | 55 
| 2           | 134   
| 4           | 765
| 20          | 65
Run Code Online (Sandbox Code Playgroud)

大!但我想看到的是一个日期范围08 Feb 2010 00:00 - 15 Feb 2010 00:00,所以我的结果集看起来像这样:

| day_start           | day_end           | cnt
---------------------------------------------------------
| 08 Feb 2010 00:00   | 15 Feb 2010 00:00 | 55 
| 15 Feb 2010 00:00   | 22 Feb 2010 00:00 | 76
| 22 Feb 2010 00:00   | 01 Mar 2010 00:00 | 756
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

小智 6

使用STR_TO_DATE('201008 Monday', '%X%V %W');得到一个正确的日期一样2010-02-22,然后用DATE_FORMAT得到你需要的格式.