【问题标题】:Count days in date range?计算日期范围内的天数?
【发布时间】:2011-02-05 19:47:51
【问题描述】:

我有一个这样的查询:

SELECT COUNT(*) AS amount
FROM daily_individual_tracking
WHERE sales = 'YES'
AND daily_individual_tracking_date BETWEEN '2010-01-01' AND '2010-03-31'

我是从一个日期范围中选择的。有没有办法获得日期范围内的总天数?

【问题讨论】:

  • 您确定您有该范围内每一天的数据吗?
  • 您能举例说明查询应该输出什么吗?甚至可能是一些示例数据?

标签: sql mysql date-range


【解决方案1】:

如果你在找,不是很清楚

DATEDIFF('2010-03-31', '2010-01-01')

COUNT(DISTINCT daily_individual_racking_date)

【讨论】:

    【解决方案2】:

    您可以使用 MySQL datediff 函数:

    SELECT DATEDIFF('2010-01-01','2010-01-31') AS DiffDays
    

    它应该返回一个浮点数,其中1.0 代表一天。

    对于 MS SQL 使用,

    SELECT DATEDIFF( day ,'2010-01-01','2010-01-31') AS DiffDays
    

    【讨论】:

      【解决方案3】:

      您到底想计算什么? daily_individual_tracking_date 的不同值的总数?您是否需要在与 count(*) 查询相同的查询中使用它?

      【讨论】:

        【解决方案4】:

        这取决于您使用的 SQL 服务器。

        如果你使用的是 MS-SQL Server,你可以使用函数DateDiff

        【讨论】:

          【解决方案5】:

          我不确定您使用的是哪个 SQL。 TSQL 有一个 DATEDIFF,它将计算两个日期之间的天数。见this

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-04-12
            • 1970-01-01
            • 2018-12-15
            • 2021-02-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多