当前位置: 首页 > 面试题库 >

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

柴华灿
2023-03-14
问题内容

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

| 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

有什么办法吗?


问题答案:

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



 类似资料:
  • 问题内容: 我正在使用 MySQL 查询建立每周报告。首先我得到周数 然后,我需要显示一周的开始日期(我所在地区的星期一)。仅使用 MySQL 怎么做? 谢谢! 问题答案: 如果您需要当前一周的星期一日期,请尝试以下操作: 它返回您当前星期的星期一日期。

  • 问题内容: 我在MySQL中有一张表,该表显示了我每天记录的小时数。我正在尝试建立一个视图,该视图将允许我按块/天范围快速将数据分组。最简单的情况是每月一次,这并不难。我可以将日期选择为“%y-%m”,然后按该列分组。 前任: 如果我按月分组,那很好。但是我的问题是,我需要从每月的13号到下个月的12号进行分组(例如:7月13日至8月12日,8月13日至9月12日,等等)。 有没有一种简单的方法可

  • 问题内容: 我有当前日期,还有一个常数,它指示星期几。我想基于该常数获取一周的开始日期。如果我将一周的第一天硬编码为星期一(或其他任何东西),那么这很简单。但是一周的第一天一直在变化。因此,我不想在每次更改第一天时都更改代码。 这是我尝试使用Java的Calendar的方法: 我想获取一周的开始日期。上面的函数返回星期的第一天,并且星期开始日期被硬编码为星期六。每当星期开始日期以上的要求发生变化时

  • 我的文档中有一个日期范围(使用日期对象)如下所示 我试图弄清楚如何构建一个查询来返回包含特定日期的所有事件,例如,像.... 如果查询显示类似这样的内容,但在Firestore查询限制下可能不可能出现这种情况。 因此,我一直在挠头几个小时,要么为此构建一个查询,要么以某种方式结构我的数据,以允许这样做。 这有可能吗?

  • 问题内容: 如果我有一个, 并且想要获得一周中的特定时间(由0(星期日)至6(星期六)指定)。 例如,如果我有as 和as ,我想得到,如果我有as , 编辑: 你们大多数人都误解了它。我有一些日期,并且想要获得由同一周的0-6指定的日期。 所以不,我不要… 的日子 问题答案: 我想这就是你想要的。

  • 问题内容: 如何获得当前一周的星期一和星期五的日期? 我有以下代码,但是如果当前日期是星期日或星期六,则它将失败。 问题答案: 这些strtotime输入效果很好: 您需要做的就是将逻辑包装在一些if语句中。