当前位置:  开发笔记 > 编程语言 > 正文

在Access Query中创建日期列表

如何解决《在AccessQuery中创建日期列表》经验,为你挑选了1个好方法。

我正在使用Access中的MakeTable查询.我想这样做,以便创建表中的一个字段将是2015年1月1日至2015年11月30日期间按时间顺序排列的日期列表.如何在Access查询设计视图中完成此操作?



1> Gustav..:

您可以创建查询:

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

保存为 qdxNumber10

现在使用笛卡尔连接(乘法)创建一个查询以生成日期:

SELECT 
    DateAdd("d",[qdxNumber10_0].[N]+[qdxNumber10_1].[N]*10+[qdxNumber10_2].[N]*100,#2/1/2015#) AS [Date]
FROM 
    qdxNumber10 AS qdxNumber10_0, 
    qdxNumber10 AS qdxNumber10_1, 
    qdxNumber10 AS qdxNumber10_2
WHERE 
    DateAdd("d",[qdxNumber10_0].[N]+[qdxNumber10_1].[N]*10+[qdxNumber10_2].[N]*100,#2/1/2015#) <= #11/30/2015#;

在创建表时将其用作源.

要生成当前年份的所有日期,请使用:

SELECT 
    DateAdd("d",[qdxNumber10_0].[N]+[qdxNumber10_1].[N]*10+[qdxNumber10_2].[N]*100,DateSerial(Year(Date()),1,1)) AS [Date]
FROM 
    qdxNumber10 AS qdxNumber10_0, 
    qdxNumber10 AS qdxNumber10_1, 
    qdxNumber10 AS qdxNumber10_2
WHERE 
    DateAdd("d",[qdxNumber10_0].[N]+[qdxNumber10_1].[N]*10+[qdxNumber10_2].[N]*100,DateSerial(Year(Date()),1,1)) <= DateSerial(Year(Date()),12,31);

DateSerial直接使用:

SELECT 
    DateSerial(Year(Date()),1,1+[qdxNumber10_0].[N]+[qdxNumber10_1].[N]*10+[qdxNumber10_2].[N]*100) AS [Date]
FROM 
    qdxNumber10 AS qdxNumber10_0, 
    qdxNumber10 AS qdxNumber10_1, 
    qdxNumber10 AS qdxNumber10_2
WHERE 
    DateSerial(Year(Date()),1,1+[qdxNumber10_0].[N]+[qdxNumber10_1].[N]*10+[qdxNumber10_2].[N]*100) <= DateSerial(Year(Date()),12,31);

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有