在 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语句如何判断一个日期在两个日期之间

如何使用 SQL 获取 2 列之间日期差异的计数(值的分布)?

在按周分组的 2 个日期之间在 MYSQL 中生成报告

在 Oracle 中生成具有 2 个日期之间时间间隔的行

SQL - 为表中的每个货币代码(在两个定义的日期之间)创建一个具有唯一日期和货币记录的表

如何在 SQL 中显示两个给定日期之间的所有日期