在Access SQL中查询“工作周”

时间:2012-02-01 11:15:00

标签: sql ms-access-2007

我有一个来自MS Excel 2007的公式,它返回某个月内特定日期的工作周。

B1 = IF(AND(WEEKDAY(A2,1)<>1,A2=DATE(YEAR(A2),MONTH(A2),1)),A2-WEEKDAY(A2,1)+7,IF(MONTH(A2)<>MONTH(A2-WEEKDAY(A2,1)+7),EOMONTH(A2,0),A2-WEEKDAY(A2,1)+7))

其中A1 = 11/2012且B1 = 1/7/2012

我想在MS Access中使用此公式并返回相同的值。我试图制定一个查询,但它不起作用。

A1列的字段名称是[rdate],B1列的字段名称是[we_date]。

1 个答案:

答案 0 :(得分:4)

不要计算,查询。参见:

Why should I consider using an auxiliary calendar table?

  

日历表可以做得更多   更容易开发任何解决方案   涉及日期的商业模式。   最后我查了一下,这包括了   几乎任何商业模式都可以   想到某种程度。不变   最终需要的问题   冗长,复杂,低效   方法包括以下内容   问题:

     
      
  • x和y之间有多少个工作日?
  •   
  • 3月的第二个星期二和4月的第一个星期五之间的所有日期是多少?
  •   
  • 我应该在什么日期预计这批货物到货?
  •   
  • 本季度所有星期五的日期是什么时候?
  •   
  • ...   
  •