Usuário com melhor resposta
Select com dateformat

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
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".- Marcado como Resposta Luis Padilha segunda-feira, 8 de janeiro de 2018 16:02
- Editado William John Adam Trindade segunda-feira, 8 de janeiro de 2018 16:02
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".
- Editado William John Adam Trindade segunda-feira, 8 de janeiro de 2018 15:56
-
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
-
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".- Marcado como Resposta Luis Padilha segunda-feira, 8 de janeiro de 2018 16:02
- Editado William John Adam Trindade segunda-feira, 8 de janeiro de 2018 16:02