Невозможно получить параметр месяц из даты, используя функцию 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];
Другие вопросы по тегам