2012-12-20 70 views
1

我一直在玩访问查询生成器中Month ...函数的变体。我无法从表达式构建日期值。我期待创建自己的日期,以便在幕后执行一些过滤和其他任务。我的问题是,我似乎不能让Month(number)函数去做我认为应该做的事情。这里是我正在寻找的一个总结。ms-access内置函数月份(数字)

5/31/2012 

通过这样的

DateSerial(Year(Date()),Month(5),Day(31)) 
Also 
DateSerial(Year(Date()),Month("5"),Day("31")) 

当我尝试这些作为表达量的回报是

1/30/2012 

我敢肯定,我误解结构。请教育我。

回答

2

DateSerial需要三个整数,年,月,日:

DateSerial(1992,5,2) 

02/05/1992 ''Euro locale 

年(日期())返回一个整数,这样你就可以代替:

DateSerial(Year(Date()),5,31) 

有趣的是,在0天是与上月的最后一天:

DateSerial(2012,12,0)=30/11/2012 

- http://office.microsoft.com/en-ie/access-help/HV080206953.aspx

顺便说一句,不要忘记所有日期都是数字。

Month(5)将等于1,但是Month(41263)=12

而且

?month(100) 
4 
?Year(100) 
1900 
+0

Remou,所以DateSerial作品掀起了连续的天值不是日历值。所以2012年3月10日相当于月(130)? –

+1

编号年份整数,一个月份1到12之间的整数以及1到31之间的一个整数。我包含一个链接。但是,您可以混淆并得出结果,而不是您预期的结果。附加信息是为了处理所有日期都是数字的事实。 41263是今天,所以月是12. – Fionnuala

+0

感谢Remou!感谢您的协助! –