首页 > 解决方案 > 在数据库/Microsoft Access 中创建日期范围

问题描述

在 Excel 中,我可以通过拖动右上角来创建日期范围。

我一般如何在 Microsoft Access/数据库中创建一系列日期?

例如,我可能想在 Microsoft Access 中创建 2020 年的所有日期,而无需手动键入它们。

Excel 单一日期

Excel 单一日期

Excel 拖放日期范围

Excel 拖放日期范围

标签: excelms-access

解决方案


您可以使用笛卡尔(乘法)查询。

首先,有一个返回 10 条记录的小查询。将其另存为

SELECT DISTINCT 
    Abs([id] Mod 10) AS N
FROM 
    MSysObjects;

然后使用它来生成一年的日期:

PARAMETERS 
    [Year] Short;
SELECT 
    DateSerial(IIf([Year] Between 100 And 9999,[Year],Year(Date())),1,1+[Ten_0].[N]+[Ten_1].[N]*10+[Ten_2].[N]*100) AS [Date]
FROM 
    Ten AS Ten_0, 
    Ten AS Ten_1, 
    Ten AS Ten_2
WHERE 
    ((([Ten_0].[N]+[Ten_1].[N]*10+[Ten_2].[N]*100)<=DateDiff("d",DateSerial(IIf([Year] Between 100 And 9999,[Year],Year(Date())),1,1),DateSerial(IIf([Year] Between 100 And 9999,[Year],Year(Date())),12,31))))
ORDER BY 
    DateSerial(IIf([Year] Between 100 And 9999,[Year],Year(Date())),1,1+[Ten_0].[N]+[Ten_1].[N]*10+[Ten_2].[N]*100);

推荐阅读