SSRS 2008 - Как округлить поле времени до ближайшей секунды - PullRequest
0 голосов
/ 17 марта 2011

SSRS 2008

Какой самый простой способ округлить поле времени до ближайшей секунды, чтобы у меня не было форматов времени, например 00: 00: 39.190000, но вместо этого было бы 00:00:39?

Я пробовал формат "t", который является коротким, но, похоже, не работает.

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

Если вы хотите отформатировать его как строку, используйте CONVERT. Если вы хотите фактически усечь дробную часть даты и времени, используйте DATEADD, чтобы вычесть ее.

declare @now datetime;
declare @floored datetime;
set @now=GETDATE();
-- get rid of the factional part by subtracting it.
-- datetime has worse than 1 msec of precision so this is exact.
-- datetime2 has 100 nsec precision; will need to use ns then.
set @floored = DATEADD(MS,-DATEPART(ms,@now),@now); 
-- output as value and as string.
-- see documentation on date and time styles. I like ODBC (120/121).
select
@now as GetDateTime,
@floored as GetDateFloored,
CONVERT(varchar,@now,120) as GetDateString, 
CONVERT(varchar,@floored,120) as GetDateFlooredAsString 
1 голос
/ 18 марта 2011

Если вы используете свойства, вы можете ввести любую строку формата, какую захотите.

Если значение занимает всю ячейку, вы должны установить для текстового поля формат , в противном случае указатель места заполнения и последний, наихудший вариант - использовать формулу. (= формат (Fields.DetailedTime.Value, "ЧЧ: мм: сс"))

Установите формат чч: мм: сс http://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=VS.80%29.aspx

Здесь работают стандартные строки формата .net: http://msdn.microsoft.com/en-us/library/fbxft59x%28v=VS.80%29.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...