Fórum Migrando Access gt; SQL Server, campos data #323963
21/06/2006
0
SQL.Add(´WHERE (( DataHora >= #´+FormatDateTime(´mm/dd/yyyy´, dData)+´ ) AND ( DataHora < ´+FormatDateTime(´mm/dd/yyyy´, dData+1)+´ )) ´)
Pelo que ja li, o valor da data, precisa vir entre aspas simples, mas não consigo colocar o caracter porque ele fecha a string. Se não colo nada, me retorna vazio. Já tentei assim:
SQL.Add(´(( DataHora >= ´+FormatDateTime(´mm/dd/yyyy´, dData)+´ 00:00:00 ) AND ( DataHora < ´+FormatDateTime(´mm/dd/yyyy´, dData+1)+´ 00:00:00 )) ´)
Mas também dá erro. O campo no SQL server está como smalldate.
Agradeço qualquer ajuda.
Quadrado
Quadrado
Curtir tópico
+ 0Posts
24/06/2006
Quadrado
Ajuda ai pessoal !!!
Gostei + 0
25/06/2006
Paulocesar1301
Se o valor tem que estar entre aspas, tente colocar o que deseja pesquisar dentro de um QuotedStr(<data a pesquisar>).
Espero não ter falado besteira... minha cabeça pode não estar funcionando bem depois da balada 8)
Abs e bons códigos :wink:
Gostei + 0
26/06/2006
Micheus
Tente deixar por conta do driver a manipulação da data, utilize parametrização e passe o parâmetro no formato de data. Não estou certo quanto ao ADOQuery, mas em outro componentes Query, esta é a melhor opção, pois vc foge de ter que saber como o banco vai tratar a data no formato string: se será yyyy-mm-dd ou dd-mm-yyyy; ou qual delimitador usar, pois o Access, por exemplo não usa aspas duplas, mas sim sustenido (#).
ex.:
adoquery1.SQL.Add(´WHERE ((DataHora >= :dtInicial) AND (DataHora < :dtFinal))´); adoquery1.Parameters.ParamByName(´dtInicial´).Value := dData; adoquery1.Parameters.ParamByName(´dtFinal´).Value := dData +1; adoquery1.Open;
Obs.: vc pode utilizar escrever seu comando de outra maneira, mais comum na avaliação de períodos (se for o caso): [i:7c6db4fb94]WHERE data BETWEEN data1 AND data2[/i:7c6db4fb94]
Gostei + 0
27/06/2006
Quadrado
Com o Quotedstring() tambem não funciona.
A gravação dos dados usando parâmetro para DataHora funciona bem, mas na pesquisa, não funciona.
Este sistema está ENORME com 9 BDs em access mas estou tendo problemas de performance, por isto estou iniciando a migração, primeiro com o menor dos bancos que tem somente uma tabela (arquivo de log), que deveria ser simples.
Pelo que já li nos foruns, a migração seria simples, corrigindo somente os comandos SQL, adaptando-os para o SQLServer. Já li algumas apostilas, mas eu não queria trabalar com storedprocedures ou trigger agora, faria a migração e iria usando as ferramentas do SQL com o tempo.
Continuo precisando de ajuda.
Obrigado.
Gostei + 0
27/06/2006
Quadrado
Valeu !
Vou continuar com a migração e vamos ver o que me espera !!!
Obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)