Inquiridor
Formato de data

Pergunta
-
Bom dia pessoal, gostaria de saber se alguém sabe me dizer porque não funciona a funçao date no sqlmobile?
Por exemplo:
"SELECT CAMPO FROM TABELA WHERE DAY(CAMPO_DATA)=" + DateTime.Now.Day;
Também tentei com:
"SET DATEFORMAT DMY SELECT CAMPO FROM TABELA WHERE CAMPO_DATA=" + DateTime.Now.Date;
Nos dois casos dá erro.
Tenho a leve impressão de que um tempo atrás isso funcionou num teste que fiz...
Estou usando C# e sql compact edition 3.5 no windows mobile 5.0.
Qualquer dica é bem-vinda, pois não sei mais o que ver.
Obrigado,
Márcio.
Todas as Respostas
-
utilize este formato caso queira fazer uma verificação na base de dados
vc pode utilizar o "ExecuteScalar" caso queira fazer uma consistencia!
espero ter ajudado
-
-
Ok Marcio
Então tente fazer desta forma convertendo para NVarchar(10) não somente o CAMPO DA TABELA mas tambem o PARAMETRO que esta sendo enviardo que neste caso é a data atual.
O porque do Nvarchar(10)
No compact SQL existe algumas limitações, pois por enquanto ele ainda nao é capaz de ter a mesma praticidade de um SQL Server da vida, então devemos enchergar algumas quary de forma simples.
por exemplo: DateTime.Now.ToString("dd/MM/yyyy"))
perceba que dentro do parentes, eu tenho 10 caracteres.
o comando que vc esta passando é um SELECT, logo este SELECT terá que retornar alguma coisa, e qualquer coisa que é retornado na tela do dispositivo deve ser convertido para ToString. por isso que convertemos a Data para Nvarchar(10) que ao invez do conteudo ser do tipo Date passará a ser do tipo String.
Mas isto é somente na execução do Select. vc poderá continua armazenado normalmente as datas no campo do tipo DateTime
bom perdoe-me se eu nao consegui ter sido claro nesta explicação mas espero ter ajudado
Ate + amigão
-
-
Estou reaproveitando esse tópico para ver se alguém pode me ajudar num problema parecido ao anterior....
A dica do amigo Agles foi genial. Me ajudou muito naquele momento em que podia comparar um nvachar, pois a data era única para aquele dia e daí tem como comparar string com string.
Só que agora preciso buscar data mesmo. Preciso buscar as datas anteriores ao dia e hora atual (data <= datetime.now). Nesse momento string não tem como usar menor igual ( <= ). Só que estou tentando de várias formas possíveis de usar no formato que o Agles sugeriu, diretamente com o campo DateTime.Now, etc....
Qualquer ajuda é bem-vinda.
Obrigado,