none
Formatar data sem converter para varchar ou char. RRS feed

  • Pergunta

  • Olá a todos,

    estou com um problema com data. Preciso fazer um select que, entre os campos de retorno tem um campo do tipo data. Como estou usando o Reporting Services não posso fazer convert(varchar) porque o campo deve estar como data no retorno para gerar o relatório. Outro ponto, é que preciso que fique da seguinte forma na visualização: dia/mes e no mesmo campo, por exemplo: 20/12. Usei da seguinte forma:

    select top 10 day(vencimento), month(vencimento)
    from dbo.T008GeracaoBoletos

    Mas, isso me retorna em campos separados. Por gentileza, têm alguma idéia??? Desde já agradeço.

     

    []´s

     

    Paulo Henrique.

    terça-feira, 20 de janeiro de 2009 14:53

Respostas

Todas as Respostas

  • PHSCuritiba,

     

    Você conseguiu retornar os campos em separado, e agora gostaria de concatenar, neste caso não vejo outra solução a não ser realizar a conversão para varchar.

     

     

    terça-feira, 20 de janeiro de 2009 15:12
  • Olá,

     

    Você não pode formatar os dados no Reporting Service? Outra coisa, dia/mês não é um campo do tipo data.

     

    Abraços

    terça-feira, 20 de janeiro de 2009 15:13
  • PHSCuritiba,

     

    Você precisa de algo deste tipo:

     

    Code Snippet

    Declare @Dia Char(2),

    @Mes Varchar(2)

     

    Select @Dia=Day(GetDate()),@Mes=Month(GetDate())

     

    Select @Dia+'/'+@Mes

     

     

     

    terça-feira, 20 de janeiro de 2009 15:16
  • Olá Phscuritiba,

     

    "Se você não pode converter então não há formatação".

     

    O tipo data não tem um formato predefinido até porque não é uma data, mas sim uma quantidade de bytes que armazena uma diferença entre a data base e a data armazenada. A data de 19/01/2009 armazena a quantidade de dias entre essa data e 01/01/1900 por exemplo. Isso significa que não há como predefinir um formato, por que isso não se aplica.

     

    Considere realizar essa formatação no Reporting Services. Se o objetivo é retirar as horas, tente o seguinte:

     

    Code Snippet
    SELECT
    CAST(CONVERT(CHAR(8),GETDATE(),112) AS SMALLDATETIME)

     

    [ ]s,

     

    Gustavo Maia Aguiar

    http://gustavomaiaaguiar.spaces.live.com

     

    terça-feira, 20 de janeiro de 2009 15:17
  • Caros,

     

    muito obrigado pelo esclarecimento e ajuda!!! Poderiam me dizer como eu faria esta formatação, neste campo, no Reporting Services??? Desde já agradeço pela ajuda.

     

    []´s

     

    Paulo Henrique.

    terça-feira, 20 de janeiro de 2009 16:54
  • Clique com o botão direito do mouse no campo, depois em Text Box Properties, selecione a opção custom em custom format coloque dd/mm dê ok e pronto

     

    Abraços

    terça-feira, 20 de janeiro de 2009 17:13
  • Boa Tarde,

     

    Outra possibilidade é utilizar a função FormatDateTime. Verifique o link abaixo:

     

    Working with Dates in Reporting Services

    http://thavash.spaces.live.com/blog/cns!CF6232111374DFD2!155.entry

     

    [ ]s,

     

    Gustavo Maia Aguiar

    http://gustavomaiaaguiar.spaces.live.com

    terça-feira, 20 de janeiro de 2009 17:15
  • Obrigado a todos pelas respostas rápidas e efetivas!!!

     

    Usei o link passado pelo Gustavo para resolver, foi de grande ajuda todas as informações postadas, até mesmo para eu aprender e entender mais sobre o assunto. Fica aqui meu agradecimento.

     

    []´s

     

    PH.

    terça-feira, 20 de janeiro de 2009 17:51
  • Olá phscuritiba,

     

    Caso as respostas tenham sido úteis, marque-as como resposta, assim, outros usuários do fórum podem usar este mesmo tópico para tirar dúvidas semelhantes.

     

    Abraços

     

    terça-feira, 20 de janeiro de 2009 17:55
  • Ok Demétrio,

     

    fiz como você disse, obrigado.

     

    []´s

     

    PH.

    terça-feira, 20 de janeiro de 2009 18:28