none
Comando para data do dia RRS feed

  • Pergunta

  • Ola pessoal

    Preciso de ajuda

    No comando abaixo eu preciso colocar ( onde esta em negrito) para trazer a data do dia de hoje, porem se eu coloco o comando getdate() nao tras resultado nenhum, se eu coloco a data '18/07/2013' ai sim tras os registros.

    onde estou errando?

    set dateformat dmy

           Declare      @DtHoje DateTime

           Set    @DtHoje = Convert(VarChar(10),DateAdd(Day,1,GetDate()),103)

          

           Select *

                        From   (

                               Select Convert(VarChar(10),tblWRIRecepcao.DtRecep,103) As DtRecepcao,

                                      tblWRIRecepcao.PK_FlagRecepcao,

                                      tblWRIRecepcao.PK_Recepcao,

                                      tblWRITipoPrenotacao.TipoPrenotacao,

                                      Convert(VarChar(10),dbo.fn_DiaUtil(tblWRIRecepcao.DtRecep+10,1),103) As LimiteDevolucao,

                                      Convert(VarChar(10),tblWRIRecepcao.DtExpiraPrn,103) As DtExpiraPrn

                               From   tblWRIRecepcao

                               Inner  Join   tblWRITipoPrenotacao

                                      On     tblWRITipoPrenotacao.PK_Id=tblWRIRecepcao.TipoPrenotacao

                                      And    tblWRITipoPrenotacao.NuncaExpira=0

                               Inner  Join   tblWRITitulos

                                      On       tblWRITitulos.FK_tblWRIRecepcaoFlagRecepcao=tblWRIRecepcao.PK_FlagRecepcao

                                      And    tblWRITitulos.FK_tblWRIRecepcaoRecepcao=tblWRIRecepcao.PK_Recepcao

                               Where  tblWRIRecepcao.DtRecep < @DtHoje

                               And    (tblWRIRecepcao.DtExpiraReentrada Is Null

                               And    tblWRIRecepcao.DtCancelamento Is Null

                               And    tblWRITitulos.DataUltimoRegistro Is Null

                               And    tblWRITitulos.DtDevolucao Is Null)

                               )      A

                 Where  A.LimiteDevolucao = getdate()  ( nao tras nada, se coloco a data '18/07/2013') ai tras o resultado

                        Order  By

                               A.DtRecepcao,

                               A.PK_FlagRecepcao,

                               A.PK_Recepcao

          

    quinta-feira, 18 de julho de 2013 21:01

Respostas

  • Boa tarde,

    Diego, se você estiver utilizando o SQL Server 2008 ou mais recente você pode experimentar dessa forma:

    Where  A.LimiteDevolucao = cast(getdate() as date)

    ou senão dessa forma (2008 ou mais recente inclusive):

    Where  A.LimiteDevolucao = dateadd(day, datediff(day, 0, getdate()), 0)

    Espero que ajude.

    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Diego_nogueira quarta-feira, 24 de julho de 2013 16:27
    quinta-feira, 18 de julho de 2013 21:08

Todas as Respostas

  • Boa tarde,

    Diego, se você estiver utilizando o SQL Server 2008 ou mais recente você pode experimentar dessa forma:

    Where  A.LimiteDevolucao = cast(getdate() as date)

    ou senão dessa forma (2008 ou mais recente inclusive):

    Where  A.LimiteDevolucao = dateadd(day, datediff(day, 0, getdate()), 0)

    Espero que ajude.

    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Diego_nogueira quarta-feira, 24 de julho de 2013 16:27
    quinta-feira, 18 de julho de 2013 21:08
  • Diego,

    Quando utilizamos diretamente a função GetDate() o SQL Server vai retornar de uma única vez, data e hora como resultado, por isso você não esta conseguindo ter o retorno dos dados.

    Neste caso, basta você fazer uso das funções Cast ou Convert para retornar o dado no formato desejado, compatível para que seja encontrado linhas de registro.

    Exemplos:

    Select CONVERT(Date,GETDATE())
    
    Select CAST(Getdate() As Date)
    
    Select CONVERT(Date, GetDate(),103)
    
    Select CONVERT(VarChar(10), GetDate(),103)


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    sexta-feira, 19 de julho de 2013 13:07