查找给定日期的季度结束日期

时间:2014-01-14 19:35:39

标签: date ms-access-2007

我将每个季度的结束日期作为表格的PK,我需要比较日期以查看计算中将使用哪个季度结束值。

表格如下:

EndingDate     Value
12/31/2012     $1,000

例如,鉴于2013年3月1日,我需要返回12/31/2012并使用该日期来检索$ 1,000值。

有谁知道在MS Access 2007中使用什么来执行此操作?我试过了:

DATEADD(dd, -1, DATEADD(qq, DATEDIFF(qq, 0, DATEINQUESTION), 0))

计算始终使用上一个结束季度的日期以及与该日期相关联的值。

2 个答案:

答案 0 :(得分:2)

一种方法是使用DMax()DLookup()的组合。对于名为[EndingBalances]

的表中的样本数据
EndingDate  Value
----------  -----
2012-09-30    900
2012-12-31   1000
2013-03-31   1100
2013-06-30   1200
2013-09-30   1300
2013-12-31   1400

表达式

DMax("EndingDate","EndingBalances","EndingDate<#2013-03-01#")

会返回日期

2012-12-31 

因此表达式

DLookup("Value","EndingBalances","EndingDate=#" & Format(DMax("EndingDate","EndingBalances","EndingDate<#2013-03-01#"), "yyyy-mm-dd") & "#")

会返回值

1000

答案 1 :(得分:0)

我使用了这个解决方案,它对我有用:

 Format(DateAdd("s",-1,DateAdd("q",DateDiff("q","1/1/1950",Date()),"1/1/1900")),"Short Date")

到目前为止......