【发布时间】:2013-09-30 18:12:51
【问题描述】:
在 MDX 中,有什么方法可以轻松地将秒转换为时间戳 (HH:MM:SS)?我也想考虑在这方面提供日子。我打算通过并使用一堆计算成员作为值,然后将它们全部格式化为一个字符串,但似乎必须有一种更好更清洁的方法来做到这一点。
【问题讨论】:
在 MDX 中,有什么方法可以轻松地将秒转换为时间戳 (HH:MM:SS)?我也想考虑在这方面提供日子。我打算通过并使用一堆计算成员作为值,然后将它们全部格式化为一个字符串,但似乎必须有一种更好更清洁的方法来做到这一点。
【问题讨论】:
您可以将秒数除以 3600 * 24 得到天数,然后使用如下格式字符串:
with member measures.duration as seconds / (3600.0 * 24.0)
,format_string = 'hh:mm:ss'
如果您的持续时间超过一天,那么这可能会有点棘手,但您可以在这里找到解决方案:http://sqlblog.com/blogs/mosha/archive/2008/09/26/displaying-duration-values-mdx-expressions-in-format-string.aspx
【讨论】:
这是一个例子:
WITH MEMBER [Measures].[TimSpent (HH:MM:SS)] AS '[Measures].[Timespent]/ 86400', FORMAT_STRING = "hh:mm:ss"
SELECT [Assignment].[Element].[Element] ON ROWS, {[Measures].[Timespent], [Measures].[TimSpent (HH:MM:SS)]} ON COLUMNS
FROM [Activity]
【讨论】: