[firebase-br] sql entre datas e horas

MAURICIO COSTA maximmumsistemas em gmail.com
Qui Dez 27 22:13:02 -03 2012


Obrigado Renato já por me disponibilizar ajuda. Mas, acho que não expliquei
direito. Vou tentar ser mais didático em minha pergunta:
Tenho uma tabela chamada CUPOM, nesta temos os campos ID_CUPOM,DATA_CUPOM,
HORA_CUPOM, VALOR_CUPOM. Colocando dados de exemplos na mesma ficaria assim:
ID_CUPOM DATA_CUPOM HORA_CUPOM VALOR_CUPOM
1                01/12/2012       23:25:53            100,00
2                01/12/2012       23:52:58            120,00
3                01/12/2012       00:59:59            300,00
4                02/12/2012       01:12:25            180,00
5                02/12/2012       02:14:58            140,00
Como e restaurante as vendas inicia as 18:00 e conclui as 02:30 da manhã no
outro dia, no exemplo acima iniciou no dia 01/12/2012 de 23:25:53 e
concluiu em 02/12/2012 as 02:14:58. Nesta data 02/12/2012 o estabelecimento
abrirá as 18:00 e as vendas da madrugada que foram duas vendas as de 180,00
e 140,00 vai entrar no relatório do dia 02/12/2012 por isso preciso de uma
maneira que a hora possa separar as vendas de uma dia para o outro. Exemplo
Where DATA_CUPOM >= 01/12/2012 And DATA_CUPOM <= 02/12/2012, só que eu
queria os produtos onde HORA_CUPOM >= 18:00:00 e  HORA_CUPOM <= 03:00:00.
Acho que ficou melhor.


Em 27 de dezembro de 2012 20:41, renato wulf jr
<renatus em centris.com.br>escreveu:

> O ideal seria ao invés de ter um campo tipo date e outro time que fosse um
> do tipo timestamp (contempla data e hora junto).
> Nesse caso a pesquisa ficaria mais fácil.
>
> Um exemplo:
>
> select * from tabela where data between '2012-12-1 00:00:00' and '2012-12-1
> 12:00:00'
>
>
> Se não der pra mudar a modelagem dos seus dados outra saída seria
> concatenar os campos data e hora e a partir daí fazer a pesquisa. Seria
> algo assim:
>
> select cast(data || ' ' || hora as timestamp) datahora from tabela where
> cast(data || ' ' || hora as timestamp) between '2012-12-1 00:00:00' and
> '2012-12-1 12:00:00'
>
> Obs.: O comando sql acima não testei em nenhuma base e pode ser que
> contenha erro de sintaxe, mas a ideia seria essa.
>
>
>
> Renato
>
>
>
> Em 27 de dezembro de 2012 21:04, MAURICIO COSTA
> <maximmumsistemas em gmail.com>escreveu:
>
> > Boa noite galera.
> > Se possível gostaria da ajuda de vocês. O problema é montar um sql que
> > traga o seguinte:
> > Em uma tabela cupom temos os campos data e outro campo hora.
> > Em um restaurante onde as vendas inicial as 18:00 da data 01/11/2012 e
> > fecha as vendas em 02:30:00 do dia 02/11/2012.
> > O problema. Quando o caixa abre no dia 02/11/2012 as 18:00 o relatório
> > entre datas acaba trazendo os produtos vendidos no dia 02/11/2012 a
> partir
> > das 18:00 se montar um sql que traga data >= 01/11/2012 a 02/11/2012.
> > Gostaria de montar o sql fazendo o seguinte onde data >= 01/11/2012 e <=
> > 02/11/2012 e hora >= 18:00:00 e hora <= 03:30:00 da manha do dia
> > 02/11/2012.
> > Obrigado a todos!
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista