Jump to content

problema con búsqueda de fecha con MySQL y visual 2012 .net


Recommended Posts

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?

:mmm: Parece que te enredaste un poco...
  • Lo que yo propuse era en caso que no fueras a cambiar el tipo de VARCHAR a DATE. Si lo cambiaste a DATE, no hay necesidad de acomodar cosas o hacer algún truco...simplemente usas el formato de fecha de MySQL.
  • No es lo mismo "20120614" que "2012-06-14" ó "2012/06/14". La primera forma sólo usa dígitos, las otras 2 usan dígitos y caracteres separadores ("-" ó "/").
  • Cuando usas campos de tipo DATE, lo más probable es que el conector o las herramientas con interfaz gráfica que usan la base de datos, muestren las fechas de acuerdo a la configuración regional del sistema. Es decir, para Chile, las fechas en formato corto creo que se muestran como "14-06-2012", pero en equipos gringos quizás se muestren como "6/14/2012". Pero el formato que usa MySQL para sus consultas es "2012-06-14".
  • Lo de usar DATE_FORMAT es sólo para comodidad, así puedes escribir las fechas en formato chileno (DD-MM-YYYY) y no tener que usar el formato de MySQL (YYYY-MM-DD) que podría ser poco cómodo o podría inducir a errores.
  • OJO: El método DateTime.ToShortDateString() usa la configuración regional del sistema para expresar la fecha, así que los resultados no necesariamente serán los mismos dependiendo del idioma y/o el país del equipo en el que se ejecute. Por ejemplo, este método puede dar cadenas distintas si se ejecuta en un equipo configurado para España y uno configurado para Chile. Así que mejor sería usar una conversión directa a formato de fecha MySQL (y no confiar en que ToShortDateString devolverá siempre el mismo tipo de cadena).

Así que creo que las Label que estás usando, las mantienes, pero sólo para mostrar las fechas al usuario. Para realizar las consultas SQL (SELECT, INSERT, UPDATE) usa el formato de fecha de MySQL. Este método te puede servir:

Public Shared Function ToMySQLDate(fecha As Date) As String
   ToMySQLDate = String.Format("{0:D4}-{1:D2}-{2:D2}", fecha.Year, fecha.Month, fecha.Day)
End Function

 

Si cambiaste el o los campos a DATE, tendrías que hacer la consulta más o menos así:

SELECT campo1,campo2 FROM alumcertiemitido WHERE fechaemitido BETWEEN '" & ToMySQLDate(fecha1) & "' AND '" & ToMySQLDate(fecha2) & "'"

 

...se supone que en las variables fecha1 y fecha2 tienes las fechas inicial y final que calculaste a partir del DateTimePicker.

Edited by susodicho
Link to comment
Share on other sites

  • 3 months later...

no se si actualmente y a la fecha aun tienes problemas con las fechas , no creo ya demas encontraste una solucion, yo iba a aportar con un pequeño codigo que sirve para poder voltear la fecha con formato normal DD-MM-YYYY y dejarla en formato MySQL YYYY-MM-DD

a la funcion solo debes pasarle la fecha en formato DD-MM-YYYY y te la entregara al revez

 

 

Private Function voltea_fecha(ByVal xfecha As Date)

Dim fecha As Date = xfecha 'declaramos para poder formatear la fecha

voltea_fecha = fecha.ToString("yyyy/MM/dd")

End Function

 

ojala le sirva a alguien mas

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...