Os serviços de relatório removem o tempo do DateTime na expressão
-
22-09-2019 - |
Pergunta
Estou tentando preencher uma expressão (valor padrão de um parâmetro) com um tempo explícito. Como faço para remover o tempo da função "agora"?
Solução 12
Encontrou a solução de aqui
Isso recebe o último segundo do dia anterior:
DateAdd("s",-1,DateAdd("d",1,Today())
Isso retorna o último segundo da semana anterior:
=dateadd("d", -Weekday(Now), (DateAdd("s",-1,DateAdd("d",1,Today()))))
Outras dicas
Algo assim:
=FormatDateTime(Now, DateFormat.ShortDate)
Onde "agora" pode ser substituído pelo nome do campo Data/hora que você está tentando converter.)
Por exemplo,
=FormatDateTime(Fields!StartDate.Value, DateFormat.ShortDate)
Como o SSRS utiliza o VB, você pode fazer o seguinte:
=Today() 'returns date only
Se você usasse:
=Now() 'returns date and current timestamp
=CDate(Now).ToString("dd/MM/yyyy")
Embora você esteja codificando a data do formart em um local.
Apenas use DateValue(Now)
Se você deseja que o resultado seja de DateTime
tipo de dados.
Se o formato de dados esperado for MM-dd-yyyy
Em seguida, tente abaixo,
=CDate(Now).ToString("MM-dd-yyyy")
Da mesma forma, você pode tentar este,
=Format(Today(),"MM-dd-yyyy")
Resultado: 02-04-2016
Observação:
Now()
vai te mostrar data atual e Carimbo de hora
Today()
vai te mostrar Encontro Só não a parte do tempo.
Além disso, você pode definir qualquer formato de data em vez de MM-dd-yyyy
no meu exemplo.
Na propriedade Formato de qualquer campo da caixa de texto, você pode usar strings de formato:
por exemplo, d/m/y, d, etc.
Uma coisa que pode ajudar os outros é que você pode colocar: =CDate(Now).ToString("dd/MM/yyyy")
na propriedade String de formato de SSRs, que pode ser obtida clicando com o botão direito do mouse na coluna. Essa é a maneira mais limpa de fazê -lo. Então sua expressão não será muito grande e difícil de "analisar visualmente" :)
FormatDateTime(Parameter.StartDate.Value)
Estou chegando tarde no jogo, mas tentei todas as soluções acima! Não consegui soltar o zero no parâmetro e me dar um padrão (ele ignorou a formatação ou parecia em branco). Eu estava usando o SSRS 2005, então estava lutando com seus problemas desajeitados / de buggy.
Minha solução alternativa era adicionar uma coluna à tabela personalizada [Dimdate] no meu banco de dados da qual eu estava puxando datas. Adicionei uma coluna que era uma representação de string no formato desejado da coluna [Data]. Criei então 2 novos conjuntos de dados no SSRS que puxaram as seguintes consultas para 2 padrões para o meu 'para' & 'de' Data Padrões -
'a partir de'
SELECT Datestring
FROM dbo.dimDate
WHERE [date] = ( SELECT MAX(date)
FROM dbo.dimdate
WHERE date < DATEADD(month, -3, GETDATE()
)
'para'
SELECT Datestring
FROM dbo.dimDate
WHERE [date] = ( SELECT MAX(date)
FROM dbo.dimdate
WHERE date <= GETDATE()
)
Minha solução para um parâmetro de data/hora:
=CDate(Today())
O truque é converter de volta para um tempo de dados como recomendação do Perhentian.
Basta concatenar uma string até o final do valor:
Fields!<your field>.Value & " " 'test'
E isso deve funcionar!
Isso deve ser feito no conjunto de dados. Você poderia fazer isso
Select CAST(CAST(YourDateTime as date) AS Varchar(11)) as DateColumnName
Dentro SSRS
Layout, basta fazer isso =Fields!DateColumnName.Value