Usuário com melhor resposta
BETWEEN COM DATA EM FORMATO INT

Pergunta
-
Bom dia!!
Estou fazendo uma tela que tem um parâmetro De, Até.
O formato que chega na minha Procedure é INT,
A minha duvida, eu queria criar um parametro na minha consulta que tras, por exemplo, todas as Ordens de Serviço De uma data x até uma data y,
Só que preciso fazer que o meu X e o meu Y, sejam em inteiros. e que o horário de "De" sempre seja 00:00.000 e o "Até" Sempre seja 23:59.000Eu estava vendo alguns exemplos e consegui encontrar o parametro usado no "De" que seria mais ou menos assim:
WHERE
(TB_SERVICE_ORDER.DATA >= @BEGINDATA AND TB_SERVICE_ORDER.DATA < @BEGINDATA + 86400)
Agora preciso do "Até"
Obrigado!!
Respostas
-
Tenta usar dessa forma:
--Between datas AND TB_SERVICE_ORDER.DATA >= Convert(Varchar(20), @BEGINDATA, 103) AND TB_SERVICE_ORDER_DATA < Convert(Varchar(20), @ENDDATA + 1, 103) --Between horários AND Convert(VARCHAR, TB_SERVICE_ORDER_DATA, 108) >= '00:00' AND Convert(VARCHAR, TB_SERVICE_ORDER_DATA, 108) < '23:59'
Abraços!
thiagokoelho
- Editado Thiago Martins Coelho sexta-feira, 18 de maio de 2012 13:34
- Marcado como Resposta JoojiCorrea sexta-feira, 18 de maio de 2012 14:38
-
Entendi, eu fiz do modo que você disse, mas quando faço a consulta, não me mostra nenhuma OS.
Bom, eu estava vendo aqui, e o numero que chega na minha proc é int,
Funcionou de uma forma legal aqui, vou deixar como eu usei, mas mesmo assim, valeu Thiago!!
AND ( TB_OS.DATA >= BEGINDATA AND TB_OS.DATA < ENDDATA + 86400)
- Marcado como Resposta JoojiCorrea sexta-feira, 18 de maio de 2012 14:38
Todas as Respostas
-
Tenta usar dessa forma:
--Between datas AND TB_SERVICE_ORDER.DATA >= Convert(Varchar(20), @BEGINDATA, 103) AND TB_SERVICE_ORDER_DATA < Convert(Varchar(20), @ENDDATA + 1, 103) --Between horários AND Convert(VARCHAR, TB_SERVICE_ORDER_DATA, 108) >= '00:00' AND Convert(VARCHAR, TB_SERVICE_ORDER_DATA, 108) < '23:59'
Abraços!
thiagokoelho
- Editado Thiago Martins Coelho sexta-feira, 18 de maio de 2012 13:34
- Marcado como Resposta JoojiCorrea sexta-feira, 18 de maio de 2012 14:38
-
Bom, não funcionou.
mas cara eu estava olhando.
Tem como você comparar Varchar?
Tipo: data >= '00:00'não teria que mostrar a data em inteiro?
- Editado JoojiCorrea sexta-feira, 18 de maio de 2012 13:54
-
-
Entendi, eu fiz do modo que você disse, mas quando faço a consulta, não me mostra nenhuma OS.
Bom, eu estava vendo aqui, e o numero que chega na minha proc é int,
Funcionou de uma forma legal aqui, vou deixar como eu usei, mas mesmo assim, valeu Thiago!!
AND ( TB_OS.DATA >= BEGINDATA AND TB_OS.DATA < ENDDATA + 86400)
- Marcado como Resposta JoojiCorrea sexta-feira, 18 de maio de 2012 14:38