我正在尝试使用以下方法从参数化日期中检索月份:
vba!month(${parDate}) or
vba!datePart(m,${parDate}) or
vba!format(${parDate},'mmm')
以上都不起作用。你能指导一下,这样做的正确方法是什么?
(尝试大写的 'MM' 而不是 'mmm' - 即使是 'mm' 也是错误的,因为它会查找几分钟而不是几个月)
这个问题和答案着眼于使用日期: 将日期格式更改为较短的日期
MSDN 是可用vba
功能的一个很好的参考mdx
,您可以用它来玩弄日期。当前链接在这里:http:
//msdn.microsoft.com/en-us/library/hh510163.aspx
我假设您有一个日期维度,并希望创建一个计算度量,该度量返回一个数值,即月份。
使用AdWks
我可以执行以下操作:
WITH
MEMBER [Measures].[DateValue] AS
[Date].[Calendar].CurrentMember.MemberValue
MEMBER [Measures].[DateKey] AS
[Date].[Calendar].CurrentMember.Member_Key
MEMBER [Measures].[DateMONTH] AS
Mid
(
[Measures].[DateKey]
,5
,2
)
SELECT
{
[Measures].[DateValue]
,[Measures].[DateKey]
,[Measures].[DateMONTH]
} ON 0
,Order
(
{
Exists
(
[Date].[Date].MEMBERS
,[Date].[Calendar Year].&[2010]
)
}
,[Date].[Calendar].CurrentMember.MemberValue
,BDESC
) ON 1
FROM [Adventure Works];
但也许你只想玩弄今天的日期并提取月份:
WITH
MEMBER [Measures].[DateValue] AS
[Date].[Calendar].CurrentMember.MemberValue
MEMBER [Measures].[TodayKey] AS
format(Now(),'yyyMMdd')
MEMBER [Measures].[TodayMONTH] AS
Mid
(
[Measures].[TodayKey]
,5
,2
)
SELECT
{
[Measures].[DateValue]
,[Measures].[TodayKey]
,[Measures].[TodayMONTH]
} ON 0
,Order
(
{
Exists
(
[Date].[Date].MEMBERS
,[Date].[Calendar Year].&[2010]
)
}
,[Date].[Calendar].CurrentMember.MemberValue
,BDESC
) ON 1
FROM [Adventure Works];