首页 > 解决方案 > 如何在毫秒访问中创建一个包含所有年份/秒的表?

问题描述

我需要制作一个表格,其中只有一列包含一年中的所有日期(例如 2019 年和 2020 年)

在 MS Access 2010 中实现这一目标的好方法是什么?

标签: databasedatetimems-access

解决方案


您可以动态创建该列表。

首先,创建一个小查询:

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);

它将返回过去一年的所有日期。如果这是无效的,则返回当前年份的日期。


推荐阅读