CRYSTAL 8.5, FILTRAR POR HORAS

LIZA 16/12/2014 10:52:23
#443238
Ja usei todos esses abaixo, para intervalo de horas, e nenhum deu certo, teria como filtrar por intervalo de horas no crystal 8.5 buscando no sql server ?, para selects eu uso esse primeiro exemplo com convert e funciona normal, mas agora preciso de relatório também, e o filtro é por selectionformula. O campo que gravo as horas é tipo datetime, o conteúdo fica assim: (1899-12-30 14:49:00.000)

wsfiltro = wsfiltro + [Ô] and convert (NVARCHAR(05), {entradas.horas} , 108) >= [ô][Ô] & Format(dthoras1.value, [Ô]HH:MM[Ô]) & [Ô][ô] [Ô]
[ô]wsfiltro = wsfiltro + [Ô] and convert (NVARCHAR(05), {entradas.horas} , 108) <= [ô][Ô] & Format(dthoras2.value, [Ô]HH:MM[Ô]) & [Ô][ô] [Ô]

[ô]wsfiltro = wsfiltro + [Ô] and mid({entradas.horas},12,5) >= [ô][Ô] & Format(dthoras1.value, [Ô]HH:MM[Ô]) & [Ô][ô] [Ô]
[ô]wsfiltro = wsfiltro + [Ô] and mid({entradas.horas} ,12,5) <= [ô][Ô] & Format(dthoras2.value, [Ô]HH:MM[Ô]) & [Ô][ô] [Ô]

[ô]wsfiltro = wsfiltro + [Ô] and {entradas.horas} >= [ô][Ô] & Format(dthoras1.value, [Ô]HH:MM[Ô]) & [Ô][ô] [Ô]
[ô]wsfiltro = wsfiltro + [Ô] and {entradas.horas} <= [ô][Ô] & Format(dthoras2.value, [Ô]HH:MM[Ô]) & [Ô][ô] [Ô]

wsfiltro = wsfiltro + [Ô] and substring({entradas.horas},12,5) >= [ô][Ô] & Format(dthoras1.value, [Ô]HH:MM[Ô]) & [Ô][ô] [Ô]
wsfiltro = wsfiltro + [Ô] and substring({entradas.horas},12,5) <= [ô][Ô] & Format(dthoras2.value, [Ô]HH:MM[Ô]) & [Ô][ô] [Ô]
TUNUSAT 16/12/2014 21:26:15
#443254
Liza,

Talvez se você fizer desta maneira, funcione.

====================================================
http://www.vbweb.com.br/forum_resp.asp?Codigo=187366
====================================================

Se você estiver usando um controle do Crystal no seu relatório, faça o seguinte (antes do cr.action=1)

dim dtini as string
dim dtfim as string

dtini=right(txtdti.text,4) & [Ô],[Ô] & mid(txtdti.text,4,2) & [Ô],[Ô] & left(txtdti.text,2)
dtfim=right(txtdtf.text,4) & [Ô],[Ô] & mid(txtdtf.text,4,2) & [Ô],[Ô] & left(txtdtf.text,2)

cr.selectionformula=[Ô]{tabela.campo}>=date([Ô] & dtini & [Ô]) and {tabela.campo}<=date([Ô] & dtfim & [Ô])[Ô]

é que o cr.selectionformula tem que ficar como no exemplo:

cr.selectionformula=[Ô]{tabela.campo}>=date(2005,07,25} and {tabela.campo}<=date(2005,07,31)[Ô]

para filtrar entre os dias 25 e 31 de julho de 2005 (no caso do exemplo).

====================================================

[][ô]s,
Tunusat.
LIZA 17/12/2014 09:08:50
#443257
Tunusat, com datas não tenho problemas, filtra normal, o problema é com campos datetime que guardo a hora, e ficam no formato que passei acima..
TUNUSAT 17/12/2014 09:52:42
#443259
Liza,

Okay.
Você está usando a função FORMAT do VB6 para fazer isto, certo?

Percebi uma coisa, está escrito em maiúscula: [Ô]HH:MM[Ô]. Parece mentira, mas é [Ô]case sensitive[Ô]. Existe uma diferença entre o [Ô]MM[Ô] (Mês com dois dígitos) e o [Ô]mm[Ô] (minutos com dois dígitos).

Aiii! Agora fiquei na dúvida! Tem alguns casos que usam o minuto como [Ô]nn[Ô]! mas qual era mesmo?

Veja estes dois sites:
http://msdn.microsoft.com/en-us/library/59bz1f0h(v=vs.90).aspx
http://www.vb6.us/tutorials/formating-dates-and-times-vb6

[][ô]s,
Tunusat.
LIZA 17/12/2014 10:18:16
#443261
sim, é que eu fiz algumas tentativas, nos selects para consulta em video ( listview), uso com: convert (NVARCHAR(05).....O problema é que na sintaxe do selectionfórmula do crystal, não aceita essa função do sql server.
Tópico encerrado , respostas não são mais permitidas