【问题标题】:SQL: count days between two dates [duplicate]SQL:计算两个日期之间的天数[重复]
【发布时间】:2019-02-10 09:43:32
【问题描述】:

我在 MySQL 数据库中有一个表,其中包含以下字段:

Name         From_Date   To_Date
Mr. Spencer  2018-09-01  2018-09-25

我喜欢统计他每周工作的次数。例如,结果必须为 4。 2018-09-01 到 2018-09-25,在这些日期之间有 4 个星期一(09-03、09-10、09-17、09-24)

但我不知道怎么做。也许有人可以帮助我。

【问题讨论】:

  • @sagi 当该问题专门针对 SQL 服务器并且是 MySQL 时,这是如何重复的?
  • @Petah 我很遗憾错过了这一点。 OP,请参考:stackoverflow.com/questions/30777605/…,然后添加计数。
  • 您好,此类问题有两个部分:算法和查询。您使用 MySQL 和 SQL 标记了您的请求,这意味着您知道该做什么(即您有一个算法),但是在为此创建查询时遇到了问题。但是,您似乎甚至不知道如何开始,所以您应该要求一个算法。但后来:你实际上被困在哪里?你想出了什么算法?有缺陷怎么办?你自己有没有开始想办法?
  • @sagi 再次,您链接的问题是针对 SQL 服务器的,OP 是在询问 MySQL

标签: mysql date between


【解决方案1】:
SELECT
    (DATEDIFF('2018-09-25', '2018-09-01') # Number of days between start and end
     + 7                                  # Add a week to account for first Monday
     - (9 - DAYOFWEEK('2018-09-01')) % 7) # Days between start and next Monday
                                          # (0 if the provided date is a Monday)
                                          # 9 because DAYOFWEEK() returns 2 for Mon
    DIV 7;                                # Divide by seven and ignore the remainder

【讨论】:

    猜你喜欢
    • 2012-12-07
    • 2011-10-29
    • 2014-07-08
    • 1970-01-01
    • 2015-02-26
    • 2019-09-27
    相关资源
    最近更新 更多