在 2 个日期之间创建一个日期表
Posted
技术标签:
【中文标题】在 2 个日期之间创建一个日期表【英文标题】:Create a date table between 2 dates 【发布时间】:2017-04-09 21:06:27 【问题描述】:我是一名编程新手,并试图在我的团队中添加一些自动化来帮助日常操作。
我尝试创建一个函数来根据给定的开始日期、结束日期和间隔创建利息支付时间表。例如,对于起始日期为 2017/01/14、到期日期为 2018/01/14 的一年期证券,付款频率为每 3 个月。它有4个利息期:2017/01/14 - 2017/04/14, 2017/04/14 - 2014/07/14, 2017/07/14 - 2017/10/14, 2017/10/14 - 2018/ 01/14。我想创建一个日期表来在 Access 中显示这 4 个期间。
记录应如下所示:
seq startdate enddate
1 2017/01/14 2017/04/14
2 2017/04/14 2017/07/14
3 2017/07/14 2017/10/14
4 2017/10/14 2018/01/14
谁能帮我解决这个问题? 非常感谢。
【问题讨论】:
欢迎来到 ***!请参阅此页面,了解如何提出一个好问题:***.com/help/how-to-ask。我们不是代码编写服务,因此请告诉我们您迄今为止尝试过的内容以及遇到的问题。 【参考方案1】:您可以使用 MSysObjects 表和笛卡尔查询来创建:
PARAMETERS
Period Text ( 255 ),
Periods Short,
FirstDate DateTime;
SELECT DISTINCT
10*Abs([Deca].[id] Mod 10)+Abs([Uno].[id] Mod 10)+1 As Sequence,
DateAdd([Period],[Sequence]-1,[FirstDate]) AS [DateStart],
DateAdd([Period],[Sequence],[FirstDate]) AS [DateEnd]
FROM
MSysObjects AS Uno,
MSysObjects AS Deca
WHERE
10*Abs([Deca].[id] Mod 10)+Abs([Uno].[id] Mod 10)<[Periods]
使用参数运行它:
Period: q
Periods: 4
FirstDate: 2017-04-14
【讨论】:
以上是关于在 2 个日期之间创建一个日期表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SQL 获取 2 列之间日期差异的计数(值的分布)?