1
如何根據日期/時間戳創建一個動態計算字段以確定以天爲單位的年齡?是否可以創建一個動態計算的字段?
例如說我有一個有日期時間戳的字段。瀏覽多維數據集時,我希望能夠看到的是顯示自時間戳以來的天數的列。因此,如果日期時間戳記爲'8/21/13 12:00 PM',並且我在'8/22/13 12:00 PM'瀏覽了多維數據集,則計算的列「天數以後」將顯示1.
這對SSAS甚至可能嗎?
如何根據日期/時間戳創建一個動態計算字段以確定以天爲單位的年齡?是否可以創建一個動態計算的字段?
例如說我有一個有日期時間戳的字段。瀏覽多維數據集時,我希望能夠看到的是顯示自時間戳以來的天數的列。因此,如果日期時間戳記爲'8/21/13 12:00 PM',並且我在'8/22/13 12:00 PM'瀏覽了多維數據集,則計算的列「天數以後」將顯示1.
這對SSAS甚至可能嗎?
是的,你可以:
with member Measures.[date string] as
Left(Right([Date].[Date].CurrentMember.UniqueName, 9), 8)
member Measures.[date formatted] as
Left(Measures.[date string], 4) + "-" +
Mid(Measures.[date string], 5, 2) + "-" +
Right(Measures.[date string], 2)
member Measures.[date date] as
CDate(Measures.[date formatted])
member Measures.[to today] as
now() - Measures.[date date]
, format_string = 'yy" years, "m" months, "d" days"'
select {
Measures.[date string],
Measures.[date formatted],
Measures.[date date],
Measures.[to today]
}
on columns,
[Date].[Date].[Date].Members
on rows
from [Adventure Works]
給你想要的東西。你當然不需要所有的中間措施,他們只是逐步顯示什麼是計算。
但是有一點說法:我使用yy
以日期格式格式化了to today
度量。四位數的年份將顯示爲「1912年」等,因爲SSAS在內部使用日期編碼,如Excel自1900年1月1日以來的天數。我錯誤地使用了此處的日期格式來格式化持續時間,這是一個數字而不是真實的日期。這種格式化方法只能在正面持續時間少於100年的情況下給出正確的結果。但這只是一個格式問題,主要的持續時間計算是正確的。它只是以天爲單位顯示持續時間,並以一小部分顯示一天內的時間。