Visual Basic.NET - Convertir Date dd/mm/yyy a yyyy/mm/dd. ¿Por qué no se puede?

 
Vista:
sin imagen de perfil
Val: 12
Ha aumentado su posición en 6 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Convertir Date dd/mm/yyy a yyyy/mm/dd. ¿Por qué no se puede?

Publicado por carlos (36 intervenciones) el 27/04/2015 23:33:39
Hola.

Tengo una fecha tipo "Date" que cojo de un DateTimerPicker. Esta fecha que viene en formato dd/mm/yyyy la quiero pasar a yyyy/mm/dd pero sin que deje de ser tipo Date.. no vale cosas así: Format(Fecha, "yyyy-MM-dd") porque me lo convierte a String.

La explicación de que no me valga convertirlo a string es porque esa fecha la quiero comparar con un dato tipo Date que tengo en una base de datos en MySQL. Y en MySQL el formato de esa fecha es yyyy/mm/dd.

Mi consulta es así: Select * from facturacion where fecha >= '" & Fecha & order by ...

Si lo paso a string, entonces no compara bien la fecha con la fecha de la base de datos.

Así que no se como hacerlo.

¿Alguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de txema

Convertir Date dd/mm/yyy a yyyy/mm/dd. ¿Por qué no se puede?

Publicado por txema (1 intervención) el 27/04/2015 23:54:50
Puede haber otras soluciones (posiblemente más sencillas) pero yo lo haría así:

1
2
3
4
5
6
7
8
<?php
$fecha = substr($_POST['myfecha'], 6,4)."-".
                 substr($_POST[''myfecha''], 3,2)."-". 
                 substr($_POST[''myfecha''], 0,2);				 
$fecha = date_create($fecha);
$fecha = date_format($fecha, "Y-m-d");
echo $fecha;
?>

Entiéndase que $_POST[''myfecha''] es lo que me llega del DateTimerPicker dentro de un form.

(la separo con guiones porque creo que así lo prefiere MySQL)

Nos cuentas si te sirve.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha aumentado su posición en 6 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Convertir Date dd/mm/yyy a yyyy/mm/dd. ¿Por qué no se puede?

Publicado por carlos (36 intervenciones) el 27/04/2015 23:57:38
Perdón, creo que lo puse en el foro equivocado. Yo estoy programando en Visual Basic.Net y php no lo domino demasiado, lo siento. Si se te ocurre algo parecido para Visual Basic te lo agradecería. Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Convertir Date dd/mm/yyy a yyyy/mm/dd. ¿Por qué no se puede?

Publicado por omar (155 intervenciones) el 28/04/2015 16:06:49
en la propiedad format y custonformat
podras realizar lo que desees de manera sencilla

en format elije la ultima opcion

despues de vas en customformat y escribes "YYYYMMDD"

espero no haberme equivocado pero asi te resultara
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 10 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Convertir Date dd/mm/yyy a yyyy/mm/dd. ¿Por qué no se puede?

Publicado por Horroroso (55 intervenciones) el 28/04/2015 16:26:58
Creo que tienes problemas con los conceptos..

Un date no tiene un formato predefinido (de hecho generalemnte se maneja internamente como un numero).

la representacion dd/mm/yyyy o yyyy/mm/dd o la que quieras es solo eso, representacion.

Te recomiendo que hagas algo como esto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Shared Function GetFacturas(ByVal Fecha As Date) As DataTable
    Dim dt As New Data.DataTable
    Using DB As New OleDb.OleDbConnection(strConnString)
 
        Try
            If DB.State = ConnectionState.Closed Then DB.Open()
            Dim cmd As New Data.OleDb.OleDbCommand()
            cmd.Connection = DB
            cmd.CommandText = "SELECT * FROM facturacion WHERE Fecha >=@Fecha"
            cmd.Parameters.AddWithValue("@Fecha", Fecha)
 
            Dim da As New Data.OleDb.OleDbDataAdapter()
            da.SelectCommand = cmd
 
            da.Fill(dt)
            da.Dispose()
 
 
        Catch ex As Exception
            Throw ex
        Finally
            DB.Close()
 
        End Try
    End Using
    Return dt
End Function

Es decir, que utilices parametros para ejecutar el SQL.
En caso de que no funcione puedes intentar:
1
cmd.Parameters.AddWithValue("@Fecha", Fecha.ToOADate)

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha aumentado su posición en 6 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Convertir Date dd/mm/yyy a yyyy/mm/dd. ¿Por qué no se puede?

Publicado por carlos (36 intervenciones) el 28/04/2015 22:03:22
Hola, gracias por las respuestas pero al no ser un experto en Visual Basic, me temo que no entiendo bien vuestra solución, pero creo que es mucho más complicado que lo que realmente necesito.

Por si no me expliqué bien: en mi base de datos tengo una fecha, por ejemplo 2005/07/04 y quiero ver si en mi programa en visual basic una fecha es mayor o menor a esa fecha de la base de datos. En la base de datos la fecha es tipo Date y su formato por defecto es yyyy/mm/dd por tanto imagino que para que me haga una buena comparación tengo que tener en visual basic un dato de tipo Date con ese mismo formato yyyy/mm/dd.

Pero el formato que me llega en Visual por el DatatimePicker es al revés: dd/mm/yyyy y si lo paso a string con funciones tipo Format (fecha, "yyyy/mm/dd") me lo compara mal (imagino porque estoy comparando un string en Visual Basic con un Date en MySQL)

Gracias por vuestras sugerencias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha aumentado su posición en 6 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Convertir Date dd/mm/yyy a yyyy/mm/dd. ¿Por qué no se puede?

Publicado por carlos (36 intervenciones) el 28/04/2015 22:13:16
Por resumir, y no liarnos. En Mysql tengo yyyy/mm/dd. ¿Cómo lo comparo con una fecha que tengo en Visual Basic? En Visual tengo dd/mm/yyyy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 10 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Convertir Date dd/mm/yyy a yyyy/mm/dd. ¿Por qué no se puede?

Publicado por Horroroso (55 intervenciones) el 04/05/2015 15:10:51
De nuevo, no tiene nada que ver el formato de la fecha si no como estas intentando comparar, pasame el codigo donde ejecutas la sentencia SQL y te lo regeso modificado para que funcione.

Tu mismo das la respuesta, estas comparando un string vs un Date, la cosa es comparar un Date en ambos asi no habrá problemas. Para comparar un Date en Ambos, utiliza el codigo que te pase.

Si no sabes como modificar tu codigo, postealo y yo lo modifico por ti.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir Date dd/mm/yyy a yyyy/mm/dd. ¿Por qué no se puede?

Publicado por Henry Gamboa meza (1 intervención) el 08/11/2017 19:22:31
Convertir un Date formato dd/MM/yyyy a formato yyyy/MM/dd, para poder comparar con campos que tienen fechas en este formato.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar