Ir para o conteúdo
hmoreira

Consulta SQL com datas em C#

Mensagens Recomendadas

hmoreira    0
hmoreira

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
M6    76
M6

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?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
hmoreira    0
hmoreira

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
renafi    3
renafi

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...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
apocsantos    209
apocsantos

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

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade