上个月记录和上季度记录的 spotfire 计算列
spotfire Calculated column for Previous Month Records and Previous Quarter records
为了获取上个月的记录,我尝试了以下表达式:
If((Month([Site Date])=(Month(DateTimeNow()) - 1)) and (Year([Site Date])=Year(DateTimeNow())),1,0)
但是当 DateTimeNow()
是 1 月时,这会出现问题。由于年份将从2016年变为2017年,年份条件不满足,在获取记录时会出现一些差异。
我对上一季度的记录也有同样的问题。
如果有人帮助我修复上面的代码,那将会很有帮助。
先谢谢大家了!
此致
桑托什
你是正确的,你需要检查年和月,但你需要使用 DATEADD()
来获得正确的值。使用这种方法,您可以将它与上个月的年和月进行比较,而不管它在日历上的哪个位置。例如 DateAdd('month',-1,Date(2017,01,26))
将是 12/26/2016
If(Month([Site Date])=Month(DateAdd("month",-1,DateTimeNow())) and Year([Site Date])=Year(DateAdd("month",-1,DateTimeNow())),1,0)
您可以通过将 DateTimeNow()
强制设置为 1 月日期来进行测试。
If(Month([Site Date])=Month(DateAdd("month",-1,Date(2017,01,26))) and Year([Site Date])=Year(DateAdd("month",-1,Date(2017,01,26))),1,0)
这个怎么样:
case
when Month(DateTimeNow())=1 then Date(Concatenate("12/1/",Year(Date(DateTimeNow())) - 1))
else Date(Concatenate(Month(Date(DateTimeNow())) - 1,"/1/",Year(Date(DateTimeNow()))))
END
为了获取上个月的记录,我尝试了以下表达式:
If((Month([Site Date])=(Month(DateTimeNow()) - 1)) and (Year([Site Date])=Year(DateTimeNow())),1,0)
但是当 DateTimeNow()
是 1 月时,这会出现问题。由于年份将从2016年变为2017年,年份条件不满足,在获取记录时会出现一些差异。
我对上一季度的记录也有同样的问题。
如果有人帮助我修复上面的代码,那将会很有帮助。
先谢谢大家了!
此致
桑托什
你是正确的,你需要检查年和月,但你需要使用 DATEADD()
来获得正确的值。使用这种方法,您可以将它与上个月的年和月进行比较,而不管它在日历上的哪个位置。例如 DateAdd('month',-1,Date(2017,01,26))
将是 12/26/2016
If(Month([Site Date])=Month(DateAdd("month",-1,DateTimeNow())) and Year([Site Date])=Year(DateAdd("month",-1,DateTimeNow())),1,0)
您可以通过将 DateTimeNow()
强制设置为 1 月日期来进行测试。
If(Month([Site Date])=Month(DateAdd("month",-1,Date(2017,01,26))) and Year([Site Date])=Year(DateAdd("month",-1,Date(2017,01,26))),1,0)
这个怎么样:
case
when Month(DateTimeNow())=1 then Date(Concatenate("12/1/",Year(Date(DateTimeNow())) - 1))
else Date(Concatenate(Month(Date(DateTimeNow())) - 1,"/1/",Year(Date(DateTimeNow()))))
END