Sql com datas
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
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
Curtidas 0
Respostas
Martins
14/03/2006
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?
GOSTEI 0
Nasguone
14/03/2006
Infelizmente sim.....dai o que eu fiz foi converter a datetime em string com o cast...mas não esta legal!
GOSTEI 0
Martins
14/03/2006
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!
GOSTEI 0
Nasguone
14/03/2006
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;
valeu pelo codigo eu implementei este :
begin
Close;
SQL := ´select * from Apontados where apont_data between :datainicial´;
´ParamByName(´datainicial´).asDate := Now´;
Open;
end;
GOSTEI 0
Adriano Santos
14/03/2006
[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.
GOSTEI 0
Nasguone
14/03/2006
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.
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.
GOSTEI 0
Martins
14/03/2006
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:
GOSTEI 0
Nasguone
14/03/2006
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..
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..
GOSTEI 0
Paullsoftware
14/03/2006
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]
GOSTEI 0