SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: colosoderada en Viernes 30 de Diciembre de 2005, 09:42

Título: Problema Sentencia Sql En C#
Publicado por: colosoderada en Viernes 30 de Diciembre de 2005, 09:42
Hola a todo el mundo tengo un problema con una campo en una tabla de una base de datos en Sybase, mi problema es que el campo es de tipo char(30) y contiene datos como "01/12/2005 10:12:25" y claro yo quisiera hacer una selección de x días por ejemplo
del día 01/12/2005 to 31/12/2005 y  mostrarlo en un datagrid "en C#" pero no hay manera porque no tengo ni idea como puedo hacer la selección

He probado hacer algo como esto "pero me da error"

Select * from Table where field between                          like "01/12/2005%" and like "31/12/2005%"

Si hago esto no hay ningún problema:

 Select * from Table where field like "01/12/2005%"

Alguna idea o ejemplo de como podría hacerlo ????
Gracias por leer este mensaje y un saludo.  :(
Título: Re: Problema Sentencia Sql En C#
Publicado por: Güorker en Lunes 2 de Enero de 2006, 08:29
Hola,

creo que lo que tu quieresno lo puedes conseguir con una columnade datos con formato texto. Deberías intentar pasarlo a fecha, aunque no se si con esa BD es posible.
Título: Re: Problema Sentencia Sql En C#
Publicado por: JuanK en Martes 3 de Enero de 2006, 19:29
NO SE MUCHO DE SYBASE PERO PRUEBA ESTO

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]SELECT[/color] *
FROM Table WHERE field BETWEEN to_date('01/12/2005','dd/mm/yyyy') AND to_date('31/12/2005','dd/mm/yyyy')
<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
Título: Re: Problema Sentencia Sql En C#
Publicado por: Soultaker en Miércoles 4 de Enero de 2006, 00:47
Cita de: "colosoderada"
Select * from Table where field between like "01/12/2005%" and like "31/12/2005%"
Despues del between no se usa el like pruebalo asi

Código: Text
  1. Select * from Table where field between &#34;01/12/2005&#34; and &#34;31/12/2005&#34;
  2.  
Tambien pruebalo con los apostrofes (comillas simples) en lugar de las comillas


 :comp:
Título: Re: Problema Sentencia Sql En C#
Publicado por: Güorker en Miércoles 4 de Enero de 2006, 08:58
Hola,

Soultaker, lo que has puesto devolvería resultados pero no tendría el funcionamiento esperado.
Lo que se pretende es que esté entre esas Fechas, pero si las fechas se tratan como texto, con lo que tu has puesto devolvería textos que se encuentran entre esos dos valores pero alfabeticamente. Es decir, por ejemplo devolvería "02/11/2004" como uno de los valores porque alfabeticamente está entre "01/12/2005" y "31/12/2005"
Saludos
Título: Re: Problema Sentencia Sql En C#
Publicado por: JuanK en Miércoles 4 de Enero de 2006, 13:36
Cita de: "Güorker"
Hola,

Soultaker, lo que has puesto devolvería resultados pero no tendría el funcionamiento esperado.
Lo que se pretende es que esté entre esas Fechas, pero si las fechas se tratan como texto, con lo que tu has puesto devolvería textos que se encuentran entre esos dos valores pero alfabeticamente. Es decir, por ejemplo devolvería "02/11/2004" como uno de los valores porque alfabeticamente está entre "01/12/2005" y "31/12/2005"
Saludos
Totalmente de acuerdo.

Hasta donde sabia (una version muyyyyyyyy vuieja de sybase , hablo de +- 5 o 6 años atras) esta base de datos es intscticamente altamente compatible con oracle asi que spero que mi conseho te sirva.

Sino es así puedes intetar con variantes de las funciones trunc y posiblemente la round.