我有一张表格,列出了一年中的每个日期。每行还包含一个从 1 到 13 的期间编号,每年循环。它看起来像这样:
| Date | Period |
| 2012-12-27 00:00:00 | 12 |
| 2012-12-28 00:00:00 | 12 |
| 2012-12-29 00:00:00 | 13 |
| 2012-12-30 00:00:00 | 13 |
| 2012-12-31 00:00:00 | 13 |
| 2013-01-01 00:00:00 | 13 |
| 2013-01-02 00:00:00 | 13 |
| . . . | 13 |
| 2013-02-10 00:00:00 | 01 |
| . . . | 01 |
| 2013-03-14 00:00:00 | 02 |
| . . . | 02 |
| 2013-05-05 00:00:00 | 03 |
正如您在上面看到的,第 13 期从 2012 年 12 月 29 日开始,到 2013 年 2 月 9 日结束。我通过获取第 13 期的第一个和最后一个日期来解决这个问题。
我需要编写一个查询来获取当前期间的期间开始和结束日期。但我遇到了问题,因为这些时期有时一年发生两次,有时像这个例子一样在年份之间重叠。
再举几个例子:
如果 getDate() = '2013-02-25 13:45:00' 则期间应为 01,开始和结束日期为 '2013-02-10 00:00:00' 和 '2013-03-14 00:00:00'
如果 getDate() = '2013-03-15 00:00:00' 那么时间段应该是 02 并且开始和结束日期应该是 '2013-03-14 00:00:00' 和 '2013-05-05 00:00:00'
我真的希望这是有道理的。让我知道是否需要澄清它!谢谢你的帮助 :)