Невозможно получить параметр месяц из даты, используя функцию vba в MDX
Я пытаюсь извлечь месяц из параметризованной даты, используя:
vba!month(${parDate}) or
vba!datePart(m,${parDate}) or
vba!format(${parDate},'mmm')
Ничего из вышеперечисленного не работает. Можете ли вы указать, как правильно сделать это?
1 ответ
(попробуйте прописные буквы "ММ", а не "ммм" - даже "мм" неверно, так как будет выглядеть минуты, а не месяцы)
В этом вопросе и ответе рассматривается работа с датами: изменение формата даты на более короткую дату
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];