在SSRS中转换Cisco CDR日期时间和持续时间

时间:2016-01-06 18:46:59

标签: sql-server reporting-services

我正在SSRS中创建一个报告,该报告从包含Cisco CDR数据的表中提取包括呼叫日期和持续时间在内的数据。两个字段都将数据存储为bigint数据类型。我知道日期/时间字段是Unix纪元时间。

我的挑战是我需要在报告中正确显示日期/时间和持续时间,但我不确定如何在SSRS中创建适当的表达式来完成此任务。我还需要通过输入开始和结束日期参数使用户能够运行报告。我非常感谢一些帮助

2 个答案:

答案 0 :(得分:0)

你可以使用转换功能在拉入时获得你想要的东西。

SELECT CONVERT(Datetime, <your date field>, 120) 

120是您想要的日期样式。 120具体是yyyy-mm-dd hh:mi:ss(24h)  所有样式都在https://msdn.microsoft.com/en-us/library/ms187928.aspx

中找到

您的数据集中的参数很容易创建存储过程并将它们添加到存储过程中。然后他们将自动创建。如果您使用纯文本查询,那么在您的查询中:

DECLARE @StartTime DATETIME
DECLARE @EndTime DATETIME

然后一定要在你的where子句中使用它们与之间的语句:

WHERE CONVERT(Datetime, <your date field>, 120) 
BETWEEN CONVERT(Datetime, @StartTime, 120) AND CONVERT(Datetime, @EndDate, 120)

通过这种方式,您可以确保所有日期保持相同的格式,以便在查询中获得正确的结果。

如果您在此之后使用纯文本,请转到参数选项卡,右键单击并创建新参数,然后将其命名为@BeginningDate并选择DATE \ TIME数据类型,然后对调用它@SeinishingDate的seocnd执行相同操作。在创建右键单击数据集并转到属性,然后转到参数选项卡并在参数名称下输入@StartDate和参数值类型[@BeginningDate]后,这意味着@BeginningDate的值,然后为@执行相同的操作。 EndDate和@FinishingDate然后它应该工作。日期/时间参数在报告中自动创建日期选择器。

答案 1 :(得分:0)

您可以使用

DATEADD(s, epoch, '1970-01-01 00:00:00')