如何在MS Access表中基于日期字段计算下一季度首日?
在Access中计算下一季度第一天的解决方法
我明白你在Access里设置计算字段时遇到的麻烦了——毕竟Excel和Access的日期函数逻辑虽然相似,但具体写法还是有区别的。咱们直接把你Excel里的逻辑转换成Access能用的表达式就行:
核心计算表达式
你可以直接用Access的DateSerial函数来实现,对应的表达式是:
DateSerial(Year([Start_Date]), ((Int((Month([Start_Date])-1)/3)+1)*3)+1, 1)
怎么添加到计算字段里?
按下面的步骤操作就没问题:
- 打开你的表,切换到设计视图
- 在空白的字段行,给新字段起个名字,比如
NextQuarterStart - 数据类型选择「计算」,此时会弹出表达式设置界面
- 把上面的表达式粘贴到「表达式」输入框里(注意把
[Start_Date]换成你实际的日期列名) - 在「返回类型」里选择「日期/时间」
- 保存表,刷新后就能看到新字段自动计算出结果啦
测试验证
比如你提到的例子:当Start_Date是2018-02-04时,代入表达式计算:
Year([Start_Date])得到2018Month([Start_Date])是2,计算((Int((2-1)/3)+1)*3)+1→((0+1)*3)+1=4- 最终
DateSerial(2018,4,1)就是2018-04-01,完全符合你的需求
另外遇到12月的日期(比如2018-12-31),表达式会自动返回2019-01-01,这也是正确的下一季度第一天哦。
额外小技巧
如果你不想修改表结构,也可以在查询里用这个表达式生成计算列,效果是一样的。
内容的提问来源于stack exchange,提问作者kazzi
相关产品推荐
相关产品推荐

