none
Select com dateformat RRS feed

  • Pergunta

  • Amigos preciso de uma ajuda..

    Estou fazendo um select , se eu coloco o cÓdigo com o comando SET DATEFORMAT DMY abaixo:

    set dateformat dmy

    SELECT DISTINCT TOP (100) PERCENT Nome, PK_Num_Livro AS Matricula, Numero_Documento AS Documento, MAX(DataAto) AS Expr1

    FROM         dbo.vw_Participantes

    WHERE     (Numero_Documento IS NOT NULL) AND (Nome <> '') AND (PK_TpParticipacao <> 252) AND (PK_Livro = 2)

    AND (DataAto < CONVERT(CHAR(10), GETDATE(), 103))

    GROUP BY Nome, Numero_Documento, PK_Num_Livro

    ORDER BY Nome, Documento, Matricula DESC

    Não traz o dia 08/01/2018 que é o que eu preciso

    Porem para colocar o codigo na view que estou fazendo preciso retirar o SET DATEFORMAT DMY, e ai ele traz os registros do dia 08/01/2018, ou seja incorreto, pois nao quero os registros do dia 08/01/2018, que é hoje

    Como posso resolver isso?

    Obrigado

    segunda-feira, 8 de janeiro de 2018 15:49

Respostas

  • Nao entendi. Voce precisa ou nao os registros de Hoje?

    Na primeira questao voce disse que precisava dos regitros de hoje e na segunda voce disse que nao quer os regitros de hoje... 

     O problema é que getdate traz tambem a hora. Neste caso faça assim:

    SELECT DISTINCT TOP (100) PERCENT Nome, PK_Num_Livro AS Matricula, Numero_Documento AS Documento, convert(char(10),MAX(DataAto),103) AS DataAtoMax
    FROM         dbo.vw_Participantes
    WHERE     (Numero_Documento IS NOT NULL) AND (Nome <> '') AND (PK_TpParticipacao <> 252) AND (PK_Livro = 2)
    AND (DataAto < CONVERT (date, GETDATE()))
    GROUP BY Nome, Numero_Documento, PK_Num_Livro
    ORDER BY Nome, Documento, Matricula DESC


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    segunda-feira, 8 de janeiro de 2018 16:00

Todas as Respostas

  • Nao vai trazer a data de hoje porque seu criteiro  (where) diz para trazer todas as DataAto que sejam menores que a data de hoje. Mude para menor ou igual, ou caso queira somente a data de hoje faça "=GetDate()"

    Voce nao deve formatar o where. Caso queira somente exibir a data em um formato especifico, faça assim:

    SELECT DISTINCT TOP (100) PERCENT Nome, PK_Num_Livro AS Matricula, Numero_Documento AS Documento, convert(char(10),MAX(DataAto),103) AS DataAtoMax
    FROM         dbo.vw_Participantes
    WHERE     (Numero_Documento IS NOT NULL) AND (Nome <> '') AND (PK_TpParticipacao <> 252) AND (PK_Livro = 2)
    AND (DataAto <= GETDATE())
    GROUP BY Nome, Numero_Documento, PK_Num_Livro
    ORDER BY Nome, Documento, Matricula DESC

    att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".




    segunda-feira, 8 de janeiro de 2018 15:53
  • AND (DataAto <= GETDATE())

    Eu testei mas como tem o <= ele ainda pega o dia de hoje

    Mesmo tirando o = ele traz os registros do dia de hoje


    • Editado Luis Padilha segunda-feira, 8 de janeiro de 2018 15:56 acres
    segunda-feira, 8 de janeiro de 2018 15:56
  • Nao entendi. Voce precisa ou nao os registros de Hoje?

    Na primeira questao voce disse que precisava dos regitros de hoje e na segunda voce disse que nao quer os regitros de hoje... 

     O problema é que getdate traz tambem a hora. Neste caso faça assim:

    SELECT DISTINCT TOP (100) PERCENT Nome, PK_Num_Livro AS Matricula, Numero_Documento AS Documento, convert(char(10),MAX(DataAto),103) AS DataAtoMax
    FROM         dbo.vw_Participantes
    WHERE     (Numero_Documento IS NOT NULL) AND (Nome <> '') AND (PK_TpParticipacao <> 252) AND (PK_Livro = 2)
    AND (DataAto < CONVERT (date, GETDATE()))
    GROUP BY Nome, Numero_Documento, PK_Num_Livro
    ORDER BY Nome, Documento, Matricula DESC


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    segunda-feira, 8 de janeiro de 2018 16:00