查找一个月中给定日期的下一次出现

开发者

如果我有@dayOfMonth介于 1 到 31 之间的整数值 ( ),我将如何确定本月剩余时间或下个月的下一个日期?

如果@dayOfMonth大于当月的有效天数,则结果应为当月的最后一天。例如,如果@dayOfMonth是 31,而今天是 4/15/17,我希望结果是 4/30/17。

这些是我对以下值的期望结果:

@testDate = 4/15/17 and @dayOfMonth = 31, result should be 4/30/17
@testDate = 4/15/17 and @dayOfMonth = 30, result should be 4/30/17
@testDate = 4/15/17 and @dayOfMonth = 25, result should be 4/25/17
@testDate = 4/15/17 and @dayOfMonth = 7, result should be 5/7/17
@testDate = 4/15/17 and @dayOfMonth = 15, result should be 5/15/17
@testDate = 1/31/17 and @dayOfMonth = 31, result should be 2/28/17
@testDate = 12/25/15 and @dayOfMonth = 5, result should be 1/5/18
开发者

我认为这说明了与本月相关的所有情况。似乎罗嗦,但它给出了预期的结果。注:这两个EOMONTHDATEFROMPARTS至少需要SQL 2012。

DECLARE @testdate date
SET @testdate = '4/15/17'

DECLARE @dayOfMonth int
SET @dayOfMonth = 31

SELECT CASE WHEN @dayOfMonth > DAY(@testdate) AND @dayOfMonth > DAY(EOMONTH(@testdate)) THEN EOMONTH(@testDate)
            WHEN @dayOfMonth > DAY(@testdate) AND @dayOfMonth <= DAY(EOMONTH(@testdate)) THEN DATEFROMPARTS(YEAR(@testDate),MONTH(@testDate),@dayOfMonth)
            WHEN @dayOfMonth <= DAY(@testdate) AND @dayOfMonth > DAY(DATEADD(MONTH,1,EOMONTH(@testdate))) THEN DATEADD(MONTH,1,EOMONTH(@testdate))
            WHEN @dayOfMonth <= DAY(@testdate) AND @dayOfMonth <= DAY(DATEADD(MONTH,1,EOMONTH(@testdate))) THEN DATEFROMPARTS(YEAR(DATEADD(MONTH,1,@testDate)),MONTH(DATEADD(MONTH,1,@testDate)),@dayOfMonth)
    END AS NextDisbursementDate

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用MS Access查询查找给定日期的下一次出现

来自分类Dev

如何确定给定日期范围内一个月中的天数?

来自分类Dev

使用 mysql 获取今天之后的一天/一个月的下一次出现

来自分类Dev

使用ShellScript比较给定日期是一个月的最后一个工作日

来自分类Dev

查找下一次出现的日期

来自分类Dev

查找下一次出现的日期

来自分类Dev

Ruby:一个月中特定日期(例如每个月的第一天)在两个日期之间出现的次数

来自分类Dev

如何根据同一月的日期查找一个月中特定日期的第五个或结束日期

来自分类Dev

获取给定日期后特定日期的第一次出现

来自分类Dev

如何用给定日期检查joda-time是一个月的第一,第二,...还是最后一个星期?

来自分类Dev

查找一个月中的周行数

来自分类Dev

润滑获取一个月中某天的日期

来自分类Dev

计算一个月中的日期观测值

来自分类Dev

润滑获取一个月中某天的日期

来自分类Dev

Excel:匹配列并在给定日期后查找下一个值

来自分类Dev

获取一周中给定日期的下一个LocalDateTime

来自分类Dev

按给定日期获取上一个和下一个星期一的日期

来自分类Dev

查找类的下一次出现

来自分类Dev

根据给定日期的频率获取下一个到期日

来自分类Dev

如何在oracle中查找一个月中所有周的开始日期和结束日期

来自分类Dev

tsql:如何检索给定日期范围之间每个月的最后一个日期

来自分类Dev

如何仅从一个月中的某一天计算日期?

来自分类Dev

使用R查找一个月中多个事件的时间总计

来自分类Dev

查找一个月中ID的平均值

来自分类Dev

给定特定日期,请使用Python在列表中查找下一个日期

来自分类Dev

在SQL表的日期字段中将值除以一个月中的天数

来自分类Dev

如何使用LIKE运算符搜索一个月中的日期?

来自分类Dev

如何从jquery datepicker列出一个月中的所有日期?

来自分类Dev

如何使用日历类获取一个月中的所有日期?

Related 相关文章

  1. 1

    使用MS Access查询查找给定日期的下一次出现

  2. 2

    如何确定给定日期范围内一个月中的天数?

  3. 3

    使用 mysql 获取今天之后的一天/一个月的下一次出现

  4. 4

    使用ShellScript比较给定日期是一个月的最后一个工作日

  5. 5

    查找下一次出现的日期

  6. 6

    查找下一次出现的日期

  7. 7

    Ruby:一个月中特定日期(例如每个月的第一天)在两个日期之间出现的次数

  8. 8

    如何根据同一月的日期查找一个月中特定日期的第五个或结束日期

  9. 9

    获取给定日期后特定日期的第一次出现

  10. 10

    如何用给定日期检查joda-time是一个月的第一,第二,...还是最后一个星期?

  11. 11

    查找一个月中的周行数

  12. 12

    润滑获取一个月中某天的日期

  13. 13

    计算一个月中的日期观测值

  14. 14

    润滑获取一个月中某天的日期

  15. 15

    Excel:匹配列并在给定日期后查找下一个值

  16. 16

    获取一周中给定日期的下一个LocalDateTime

  17. 17

    按给定日期获取上一个和下一个星期一的日期

  18. 18

    查找类的下一次出现

  19. 19

    根据给定日期的频率获取下一个到期日

  20. 20

    如何在oracle中查找一个月中所有周的开始日期和结束日期

  21. 21

    tsql:如何检索给定日期范围之间每个月的最后一个日期

  22. 22

    如何仅从一个月中的某一天计算日期?

  23. 23

    使用R查找一个月中多个事件的时间总计

  24. 24

    查找一个月中ID的平均值

  25. 25

    给定特定日期,请使用Python在列表中查找下一个日期

  26. 26

    在SQL表的日期字段中将值除以一个月中的天数

  27. 27

    如何使用LIKE运算符搜索一个月中的日期?

  28. 28

    如何从jquery datepicker列出一个月中的所有日期?

  29. 29

    如何使用日历类获取一个月中的所有日期?

热门标签

归档