Sql com datas

14/03/2006

0

Olá boa noite a todos... tenho om script de sql para usar datas como parametros:

select * from tabela
where apont_date = cast(:data as datetime )
order by apont_date

o problema e que dá uns paus loucos de vez em quando......Alguem tem algum exemplo mais pratico para usar datas como parametros?

Grato pela atenção
E.C.S


Nasguone

Nasguone

Responder

Posts

14/03/2006

Martins

Olá boa noite a todos... tenho om script de sql para usar datas como parametros: select * from tabela where apont_date = cast(:data as datetime ) order by apont_date o problema e que dá uns paus loucos de vez em quando......Alguem tem algum exemplo mais pratico para usar datas como parametros? Grato pela atenção E.C.S


O valor do seu parametro tem q ser sempre a data corrente?

Qual o seu Banco de Dados?


Responder

14/03/2006

Nasguone

Infelizmente sim.....dai o que eu fiz foi converter a datetime em string com o cast...mas não esta legal!


Responder

14/03/2006

Martins

Infelizmente sim.....dai o que eu fiz foi converter a datetime em string com o cast...mas não esta legal!


Quais são os erros q ocorrem?

esse campo [b:d41d139f0e]apont_date [/b:d41d139f0e], é do tipo Date ou String?

Query.Close;
Query.Sql.Clear;
Query.Sql.Add(´select * from tabela 
where apont_date = :data  order by apont_date´); 
Query.Sql.ParamByName(´data´).AsDateTime := Now;
Query.Open;


Boa sorte!


Responder

14/03/2006

Nasguone

E do tipo date
valeu pelo codigo eu implementei este :
begin
Close;
SQL := ´select * from Apontados where apont_data between :datainicial´;
´ParamByName(´datainicial´).asDate := Now´;
Open;
end;


Responder

14/03/2006

Adriano Santos

[quote:cb5cef6a4e=´nasguone´]Infelizmente sim.....dai o que eu fiz foi converter a datetime em string com o cast...mas não esta legal!


Quais são os erros q ocorrem?

esse campo [b:cb5cef6a4e]apont_date [/b:cb5cef6a4e], é do tipo Date ou String?

Query.Close;
Query.Sql.Clear;
Query.Sql.Add(´select * from tabela 
where apont_date = :data  order by apont_date´); 
Query.Sql.ParamByName(´data´).AsDateTime := Now;
Query.Open;


Boa sorte![/quote:cb5cef6a4e]

Realmente, a forma que o [b:cb5cef6a4e]Martins[/b:cb5cef6a4e] passou é a mais simples e funciona perfeitamente. Só tenho curiosidade em saber qual o banco de dados.


Responder

14/03/2006

Nasguone

Os erros que ocorrem são do tipo campo apont_data não e datetime ´ converta para string.....!!!!!
Erro e muito estranho pq da de vez em quando no meio da operação...de principio pensei que era por modo de parametros vazios mas não é!! mudei o sql como acima, funciona mas perdi rendimento principalmente em consultas com mais de 35.000 registros

O SQL e um 2000 - mas creio que não e nada com ele e sim com o script que estou aplicando.


Responder

15/03/2006

Martins

Os erros que ocorrem são do tipo campo apont_data não e datetime ´ converta para string.....!!!!! Erro e muito estranho pq da de vez em quando no meio da operação...de principio pensei que era por modo de parametros vazios mas não é!! mudei o sql como acima, funciona mas perdi rendimento principalmente em consultas com mais de 35.000 registros O SQL e um 2000 - mas creio que não e nada com ele e sim com o script que estou aplicando.

:(

Já q houve perda de performance devido ao parametro ser carregado com dados externos aos BD, vc poderia nos mostrar a DDL de sua base / tabela, para que possamos analisar?

Seu banco é SQL Server 2000, tudo bem, agora post a estrutura de sua tabela.

:wink:


Responder

15/03/2006

Nasguone

select a.* from KD_VIEW_APONTAMENTO a
INNER JOIN KD_VIEW_PROXIMA_OPERACAO_APONTAR b
ON A.APONT_PROD_KEY = b.APONT_PROD_KEY
and A.APONT_SEQ = B.APONT_SEQ AND A.APONT_KEY = B.APONT_KEY
where apont_date = cast(:datdia as datetime )
and
apont_status is not null
order by apont_date


Tudo que preciso e que me traga apenas os registros apontados no dia
busco isso fazendo o parametros datdia receber now..


Responder

15/03/2006

Paullsoftware

select a.* from KD_VIEW_APONTAMENTO a INNER JOIN KD_VIEW_PROXIMA_OPERACAO_APONTAR b ON A.APONT_PROD_KEY = b.APONT_PROD_KEY and A.APONT_SEQ = B.APONT_SEQ AND A.APONT_KEY = B.APONT_KEY where apont_date = cast(:datdia as datetime ) and apont_status is not null order by apont_date Tudo que preciso e que me traga apenas os registros apontados no dia busco isso fazendo o parametros datdia receber now..


where apont_date = cast(:datdia as datetime )

[b:0a8cbf0575]não seria apenas Date???[/b:0a8cbf0575]


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar