关于日期函数

0
 请教一个问题:
在案例11:基于时间参数的报表操作

QQ图片20160319174203.png


其中参数StatDate 是正确的,默认值为=DateSerial(2006,month(today()),1)
但是参数EndDate 显示的不是我想要的结果(2006/3/31),参数的默认值:=dateadd("m",1,DateSerial(2006,month(today()),0))
我是看着视频做的,个人理解此公式写的不大适合本月情况(本月3月上月2月,只有28日)

为了让EndDate 的默认值显示为2006/3/31,我改成了=DateSerial(2006,month(today())+1,0)),但是这样的写法,系统提示错误。


实际工作中,我想将EndDate的默认值设置为本月的上个工作日,好像没有内置的函数…… 
 
PS:显示为2006/3/31日的问题已解决:=iif(MONTH(today)=3,DateSerial(2006,MONTH(today),31),iif(MONTH(today)=5,DateSerial(2006,MONTH(today),31),iif(MONTH(today)=7,DateSerial(2006,MONTH(today),31),iif(MONTH(today)=10,DateSerial(2006,MONTH(today),31),iif(MONTH(today)=12,DateSerial(2006,MONTH(today),31),dateadd("m",1,DateSerial(2006,MONTH(today),0))))))),还请感兴趣的帮忙验证一下,谢谢~
我:
SSRS中没有OR函数吗?我没找到,否则就不用嵌套这么多层了~
已邀请:
0

郑大鹏 2016-03-19 回答

OR 函数?还是逻辑运算符
还有可以用下switch函数,不用IIF嵌套那么多层吧
 
日期函数:
DateSerial(2006,month(today()),1) 2006年3月1日
dateadd("m",1,DateSerial(2006,month(today()),0)) 2006年4月1日 
dateadd("d",-1,dateadd("m",1,DateSerial(2006,month(today()),0))) 2006年3月31日
或者
dateadd("m",1,today()) 上月本日 
DateSerial(2006,month(dateadd("m",1,today())),1) 2006年4月1日 
dateadd("d",-1,DateSerial(2006,month(dateadd("m",1,today())),1)) 2006年3月31日
0

okajun - 数据小白 2016-03-19 回答

谢谢!简单实用~

要回复问题请先登录注册