小编典典

MySQL:查询中星期几的日期范围

sql

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

| id         | clock         | info
----------------------------------------------
| 1          | 1262556754    | some info
| 2          | 1262556230    | some other info
| 3          | 1262556988    | and another
| 4          | 1262555678    | and some more

写入此日志时,它包含日志记录和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

这给出了这样的结果:

| week       | cnt
-------------------------------
| 1           | 55 
| 2           | 134   
| 4           | 765
| 20          | 65

伟大的!但是我想看到的是一个日期范围,如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

有什么办法吗?


阅读 296

收藏
2021-04-22

共1个答案

小编典典

使用STR_TO_DATE('201008 Monday', '%X%V %W');以获得合适的日期一样2010-02-22,然后用DATE_FORMAT得到你需要的格式。

2021-04-22