选择从多个日期注册表中计算两个日期之间的不同月份?

伯纳多·利马

我想获取所有注册表之间的月份计数,但是如果以前已经计算过一年中的一个月,则无法再次计数。
如果月份是另一年,则可以计算。

例子:

#--|Begin date|--|End Date---|
______________________________
#--|2014-01-01|--|2014-05-01-| 01 to 05 = 5 months
#--|2014-07-01|--|2014-07-31-| 1 month
#--|2014-08-01|--|2015-01-01-| 01/2014 to 01/2015 = 6 months

从示例中计算的总月份数:
5 + 1 + 6 == 12个月

如何使用sql获得此计数?

布莱恩·德米利亚(Brian DeMilia)

可以肯定,这将为您提供所需的东西:

select sum(mo_between)
from(
select begin_date, end_date, case when date_format(end_date,'%e') = 1
                                  then 1 + period_diff(date_format(end_date,'%Y%m'),date_format(begin_date,'%Y%m'))
                                  when period_diff(date_format(end_date,'%Y%m'),date_format(begin_date,'%Y%m')) = 0 then 1
                                  else period_diff(date_format(end_date,'%Y%m'),date_format(begin_date,'%Y%m'))
                                  end as mo_between
from tbl) x

小提琴: http ://sqlfiddle.com/#!2/953e8c/2/0

您可以运行以下命令以逐行返回它:

select begin_date, end_date, case when date_format(end_date,'%e') = 1
                                  then 1 + period_diff(date_format(end_date,'%Y%m'),date_format(begin_date,'%Y%m'))
                                  when period_diff(date_format(end_date,'%Y%m'),date_format(begin_date,'%Y%m')) = 0 then 1
                                  else period_diff(date_format(end_date,'%Y%m'),date_format(begin_date,'%Y%m'))
                                  end as mo_between
from tbl

小提琴: http ://sqlfiddle.com/#!2/953e8c/1/0

这应该可以处理几个月之间的时间间隔,但是不能处理重叠的时间段,我不知道您的数据中是否存在重叠时间(在您的示例中不存在)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

比较不同月份中的两个日期在PHP中什么也不返回

来自分类Dev

计算两个日期之间的整年和部分月份

来自分类Dev

从两个日期计算月份

来自分类Dev

比较不同月份的日期

来自分类Dev

如何在两个日期之间选择不同的值

来自分类Dev

查找两个日期之间的月份和日期差异

来自分类Dev

如何查询按日期分组的两个表并为每个表计数日期注册表

来自分类Dev

从两个日期之间的MS Access表中选择?

来自分类Dev

使用2个日期获取不同月份的天数

来自分类Dev

如何获得两个不同月份的月度报告?

来自分类Dev

计算两个日期之间的天数?

来自分类Dev

计算两个日期之间的时差

来自分类Dev

计算两个日期之间的时差

来自分类Dev

计算两个日期之间的时差

来自分类Dev

计算两个日期之间的用户

来自分类Dev

计算两个日期之间的天数

来自分类Dev

如何在C#中计算两个日期之间的月数

来自分类Dev

如何在Java中计算年龄或两个日期之间的差异

来自分类Dev

在Python中计算两个日期时间值之间的时差

来自分类Dev

如何在t-sql中计算两个日期之间的of年数?

来自分类Dev

在Power Pivot中计算两个日期之间的工作日数

来自分类Dev

如何在Oracle 11g SQL中计算两个日期之间的差异

来自分类Dev

如何在Excel中计算两个日期之间的平均年龄

来自分类Dev

在Python中计算两个日期时间值之间的时差

来自分类Dev

在JavaScript中计算两个日期之间的持续时间

来自分类Dev

在SQL中计算两个日期之间的持续时间

来自分类Dev

使用JodaTime计算两个日期之间的月份,并牢记年份

来自分类Dev

计算两个日期之间的天数[始终保留最多30天的月份]

来自分类Dev

使用JodaTime计算两个日期之间的月份,并牢记年份

Related 相关文章

  1. 1

    比较不同月份中的两个日期在PHP中什么也不返回

  2. 2

    计算两个日期之间的整年和部分月份

  3. 3

    从两个日期计算月份

  4. 4

    比较不同月份的日期

  5. 5

    如何在两个日期之间选择不同的值

  6. 6

    查找两个日期之间的月份和日期差异

  7. 7

    如何查询按日期分组的两个表并为每个表计数日期注册表

  8. 8

    从两个日期之间的MS Access表中选择?

  9. 9

    使用2个日期获取不同月份的天数

  10. 10

    如何获得两个不同月份的月度报告?

  11. 11

    计算两个日期之间的天数?

  12. 12

    计算两个日期之间的时差

  13. 13

    计算两个日期之间的时差

  14. 14

    计算两个日期之间的时差

  15. 15

    计算两个日期之间的用户

  16. 16

    计算两个日期之间的天数

  17. 17

    如何在C#中计算两个日期之间的月数

  18. 18

    如何在Java中计算年龄或两个日期之间的差异

  19. 19

    在Python中计算两个日期时间值之间的时差

  20. 20

    如何在t-sql中计算两个日期之间的of年数?

  21. 21

    在Power Pivot中计算两个日期之间的工作日数

  22. 22

    如何在Oracle 11g SQL中计算两个日期之间的差异

  23. 23

    如何在Excel中计算两个日期之间的平均年龄

  24. 24

    在Python中计算两个日期时间值之间的时差

  25. 25

    在JavaScript中计算两个日期之间的持续时间

  26. 26

    在SQL中计算两个日期之间的持续时间

  27. 27

    使用JodaTime计算两个日期之间的月份,并牢记年份

  28. 28

    计算两个日期之间的天数[始终保留最多30天的月份]

  29. 29

    使用JodaTime计算两个日期之间的月份,并牢记年份

热门标签

归档