【问题标题】:MYSQL How to get the start and end date of a week?MYSQL 如何获取一周的开始和结束日期?
【发布时间】:2021-05-19 23:20:17
【问题描述】:

在我查询之后,在使用 YEAR()、MONTH() 和 WEEK() 函数对它们进行分组后,我已经得到了年、月和周。但是,我在某个地方丢失了显示查询的开始日期和结束日期。

delivery_date isActive
18/1/2021 1
19/1/2021 1
20/1/2021 1
SELECT CONCAT(YEAR(delivery_date), ' / ', MONTH(delivery_date), ' / ', WEEK(delivery_date)) AS WEEK
  FROM ode_orders 
 WHERE isActive = 1 
 GROUP 
    BY WEEK

分组和串联的结果

2021 / 1 / 3

如何显示一周的开始和结束日期?

比如下面这张表?

year / month / week start_date end_date
2021 / 1 / 3 18/1/2021 20/1/2021

【问题讨论】:

  • 您还需要确认您认为是一年中第一周的第一天
  • 一周三天似乎很奇怪
  • 对不起,我的例子不清楚。我只想显示它从合并到几周的数据中获取的日期。我知道一周有 7 天,并且假设在第一天和第 7 天之间显示。但是如果数据只有一周的三天,那么我希望它只显示 3 天。下面的示例数据只是我整个表格的一小部分。如果您能提供帮助,不胜感激 =)
  • 我觉得我已经解释了我认为你需要做的事情。如果您选择不采取这些步骤,那很好,但在这种情况下我无法提供进一步的帮助。

标签: mysql dayofweek


【解决方案1】:

如何获取一周的开始和结束日期?

SELECT CONCAT(@year, '-01-01') + INTERVAL @week WEEK - INTERVAL WEEKDAY(CONCAT(@year, '-01-01')) DAY as first_day_of_week,
       CONCAT(@year, '-01-01') + INTERVAL @week WEEK - INTERVAL WEEKDAY(CONCAT(@year, '-01-01')) - 6 DAY as last_day_of_week;

@month源数据过多,周完全由年和周数决定。

fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 2021-01-18
    • 2018-07-21
    • 2020-11-10
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多