kuraudeo-batusay Posted June 13, 2012 Report Share Posted June 13, 2012 amigos por favor necesito ayuda.... lo que pasa es que tengo que bucar un rango de fecha en Mysql y no se como hacerlo por ejemplo tengo una vista en MySql donde tengo 5 columnas de las cales una se llama fecha...(al ser una vista los datos los llamo de 2 tablas y el campo de fecha de la tabla lo deje como varchar) entonces en la vista ese campo fecha me queda en varchar tambien.......... ya tengo un datetimerpiker el cual en formato corto osea 13-06-2012.... y un boton lo que tiene que hacer el codigo del boton es tomar la fecha del datetimer piker y buscar todos los registro entre la fecha del datetimerpiker hasta 3 años atras eso lo hago con unos lavel los cuales si tengo en el datetimerpiker 13-06-2012 me queda asi .. label1.text = 13-06-1012y label2.text = 13-07-2009 osea quiero buscar todos los registros que esten entre esas fechas y no se como ya que el campo no es date como puedo hacerlo??????? trate asi y no me aparece nada :S "select * from alumcertiemitido where fechaemitido between '" & Label1.Text & "' and '" & Label2.Text & "'"espero me puedan ayudra :$ Link to comment Share on other sites More sharing options...
AshWilliams Posted June 13, 2012 Report Share Posted June 13, 2012 Eso pasa porque las fechas en Mysql se almacenan del siguiente modo: - en vez de 13-07-2009 la guarda como 2009-07-13 Tu consulta podría ser asi: SELECT campo1,campo2,campo3,campo4, DATE_FORMAT(fechaemitido,'%d-%m-%Y') AS Fecha where Fecha BETWEEN '" & Label1.Text & "' and '" & Label2.Text & "'" Lo otro sería formatear la fecha que obtienes del datetimepicker antes de enviarla a la consulta SQL. Saludos :krider: Link to comment Share on other sites More sharing options...
kuraudeo-batusay Posted June 13, 2012 Author Report Share Posted June 13, 2012 es que no tengo declarado el campo fecha como date para que guarde asi la fecha...... onda como el campo a la hora de hacer la tabla se me olvido y deje el cambo en ves de date como varchar entonces guardo la fecha y queda tal cual el datetimerpiker osea 31-06-2012 :S Link to comment Share on other sites More sharing options...
AshWilliams Posted June 13, 2012 Report Share Posted June 13, 2012 No pos....debe ir como date en la BD Mysql si o si y para insertar usa un insert con date format:DATE_FORMAT(datetimepicker.text,'%Y-%m-%d') AS fecha_a_guardar_en_bd o algo similar....asi formateas la fecha al formato a a guardar en Mysql o bien la formateas por código antes de hacer el insert.....una vez tengas bien tu BD podrás usar la consulta que te deje en mi otro post. Saludos :krider: Link to comment Share on other sites More sharing options...
kuraudeo-batusay Posted June 14, 2012 Author Report Share Posted June 14, 2012 a ocale pero como puedo cambiar la el valor de la columna de varchar a date?si ya tiene info no se puede por comando por que por medio del diseñador de visual no me deja :S Link to comment Share on other sites More sharing options...
AshWilliams Posted June 14, 2012 Report Share Posted June 14, 2012 Usando una herramienta externa como Navicat Mysql, Mysqlfront o bien desde la consola de mysql. Saludos :krider: Link to comment Share on other sites More sharing options...
Rivx Posted June 14, 2012 Report Share Posted June 14, 2012 O usa MySQL Workbench. Te lo digo por experiencia. ;8) Link to comment Share on other sites More sharing options...
kuraudeo-batusay Posted June 14, 2012 Author Report Share Posted June 14, 2012 O usa MySQL Workbench. Te lo digo por experiencia. ;8) creo que esa herramienta la tengo cuando instale mysql server pero como lo hago selecciono la tabla el campo que deceo y hay le cambio el tipo de varchar a date? y cambiara hasta los datos que posee esa columna???????????????? Link to comment Share on other sites More sharing options...
susodicho Posted June 14, 2012 Report Share Posted June 14, 2012 :mmm: Si quieres dejar tu base de datos tal cual y no tener que cambiar el tipo de dato de VARCHAR a DATE, se debería poder hacer una consulta como la que quieres, sólo tienes que guardar la fecha de forma conveniente.O sea, si guardas las fechas como VARCHAR de la forma "YYYYMMDD", se pueden comparar fechas y verificar rangos de fechas. Por ejemplo, mira las siguientes cadenas: "20031225" > "20030918" ...que, en palabras, sería "La navidad del 2003 es mayor que las fiesta patrias del 2003", y que en rigor debería interpretarse como "La navidad del 2003 es posterior a las fiestas patrias del 2003" :tonto: Obviamente, es aun más conveniente guardar las fechas de la forma "YYYYMMDD" en un tipo de dato entero (es más eficiente). Es decir, podrías haber declarado el campo como INT4 (o como sea que se llame en MySQL) y expresar la fecha de hoy (14 de junio del 2012) como el número entero 20120614 (20 y tantos millones). Ojo, debes tener en cuenta que el formato "YYYYMMDD" debe ser con ceros a la izquierda en caso de ser necesario, o sea, la fecha de hoy no se puede expresar como "2012614" :no: (falta un cero a la izquierda del 6). Link to comment Share on other sites More sharing options...
kuraudeo-batusay Posted June 14, 2012 Author Report Share Posted June 14, 2012 (edited) O FILTE PROBARE ESO YA QUE TRATO DE ABRIR LA LINEA DE COMANDO PARA MYSQL :s Y NO PUEDO PONGO LA CONTRASEÑA Y SE CIERRA :s ASI QUE CAMBIARE COMO SE GUARDA LA FECHA AYA QUE CON WORKBENCH NO CACHO COMO SE UTILIZA AL 100% oe mira con el conector mysql .net veo la fecha normal en la base de datos onda 14-06-2012 si la coloco como tudices al reves onda año primero y al ultimo el dia me la cambia a como dije antes pero si me voy a la base de datos a la linea de comando y busco la fecha sale como dices tu y trato de hacer de todas formas esa consulta y no aparece nada :S y eso que cambie el campo a date... SELECT campo1,campo2,campo3,campo4, DATE_FORMAT(fechaemitido,'%d-%m-%Y') AS Fecha where Fecha BETWEEN '" & Label1.Text & "' and '" & Label2.Text & "'" ayuda pleas aparte de between que mas puedo hacer usar? Edited June 14, 2012 by kuraudeo-batusay Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now