2013-11-29 6 views
0

Я использую SSRS для отчета, но у меня проблема с моими временами. В SQL они выходят, как я хочу, чтобы они были 00: 00: 00: 00, но в SSRS FastestSegmentTime и SlowestSegmentTime выходят как 00: 00: 00: 00.0000000. Я пробовал форматировать текстовое поле, в которое он входит, но ничего не работает. если у кого-то есть идея, как это исправить, это было бы очень признательно!Формат времени SSRS неправильный

Благодаря

Томас Джеймс

DECLARE 
@vnuID int = 1212, 
@StartDate datetime = '30/10/2013', 
@EndDate datetime = '30/11/2013' 


SELECT 
    FastestSegmentTime = MIN(CAST(tblTrace.trFinish - tblTrace.trStart AS TIME(2))), 
    SlowestSegmentTime = MAX(CAST(tblTrace.trFinish - tblTrace.trStart AS TIME(2))), 
    AvgSegmentTime = CAST(DATEADD(ms, 1000 * AVG(DATEDIFF(SECOND, tblTrace.trStart , tblTrace.trFinish)),0) AS TIME(2)) 
FROM 
    tblTrace 
    INNER JOIN tblUsers ON usrID = tr_usrID 
WHERE 
    (tblTrace.trFinish IS NOT NULL) 
    AND (tblTrace.trObjectType LIKE 'Segment%') 
    AND (tblTrace.tr_vnuID = @vnuID) 
    AND (tblTrace.trStart BETWEEN @StartDate AND @EndDate) 
    AND (tblUsers.usrEmail NOT LIKE '%@test%') 
+0

Вы не показывали, как вы форматируете время. Типы даты и даты имеют формат NO. Они форматируются только тогда, когда вы конвертируете их в текст, неявно или явно. Где и как вы показываете значения? Каков формат полей отчета? –

+0

Не забывайте, что ваш отчет и ваш сервер SQL Server могут иметь другой формат языка. Вы можете указать, например, отчет для показа на немецком языке, так что ваши деньги и дата формируются для германии. Возможно, ваш сервер sql, возможно, на английском языке –

ответ

1

Вместо преобразования FastestSegmentTime столбец времени (2), преобразовать его в DateTime. Затем в SSRS в текстовом поле напишите это: =Format(Fields!time.Value,"HH:mm:ss:ff"). Он отобразит значение в нужном формате.

Смежные вопросы