• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

hmoreira

Consulta SQL com datas em C#

11 mensagens neste tópico

Olá a todos,

Tenho a minha consulta do seguinte modo:

  DateTime data1 = DateTime.Parse(dateTimePicker1.Text);

            DateTime data2 = DateTime.Parse(dateTimePicker2.Text);

            string dainicial = data1.ToShortDateString();

            string dafinal = data2.ToShortDateString();

sql = ("SELECT  *  FROM dados WHERE data >= '" + dainicial + "' and Data <= '" + dafinal + "'");

Mas dá-me o erro "tipo de dados incorrectos na expressão de critérios"...

Alguém me pode ajudar?

Muito obrigado

---

Edit por M6: título alterado, todas as dúvidas carecem de reposta urgente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O teu problema está, como indicado pelo erro, no tipo de dados das variáveis dainicial e dafinal  que estás a passar para a query.

Isso são strings?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O programa consegue "ver" que a data é por exemplo 05-12-2009, pois se mostrar numa textbox aparece a data correcta, mas nao percebo pk dá erro, acho que tem a ver com o instrução sql, mas nao me lembro como fazia isto...

Abraço e obg pela resposta

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se são strings, talvez não precises de colocar as plicas na query. Experimenta.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se são strings tens de ter as data entre plicas, mas tens de ver se o formato está correcto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta utilizar a função Convert,  no formato que quiseres, na  altura do envio da quero no comando. Pode ser que isso te sirva

http://www.sql-server-helper.com/tips/date-formats.aspx

Se te quiseres mesmo livrar do formato que tens na BD, e definires o teu, executa este comando no SQL : dbcc useroptions  -> aqui tens la um campo que te indica o formato das datas na BD

Para alterares ao teu formato, faz: set dateformat dmy , ou como preferires...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

caso estejas a usar mysql ele por defeito reconhece as datas como no formato yyyy-mm-dd e não o contrario, ainda que te aceite o texto vai dar sempre erro na query.

nesse caso tens de alterar o codigo de maneira a formatares os dados em yyyy-mm-dd.

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora